Показать сообщение отдельно
  #14  
Старый 09.08.2013, 11:04
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Я имел в виду, что по правилам русского языка в предложении "Книга лежит в шкафу" четыре слова. Поэтому дополнительно поставленное условие "минимум 2 символа" приведет к невыполнению условия изначального задания "подсчитать количество слов в предложении" (такой алгоритм не учтёт предлог "в").
Цитата:
if (!isspace(strlen(buff))) // последний символ не пробел?
Не понял. Сильно сомневаюсь, что длина строки часто будет пробелом.
Кстати сей код у меня регулярно падает. Дебажный gets_s забивает свободную часть строки байтами 0xFE, и естественно дописывание пробела на конце убивает строку.
И еще немного багии:
Цитата:
1234_1234
So, we have the 1 words
21431_234_1234_1234_
So, we have the 4 words
1234_1234_1_1234
So, we have the 3 words
1234_1234123_1234
So, we have the 3 words
1111 1111111 1111112 111212 1212
So, we have the 4 words
1111 1111111 1111112 111212 121
So, we have the 5 words
1111 1111111 1111112 111212 1212
So, we have the 4 words
1111 1111111 1111112 111212 12121
So, we have the 5 words
Стоит обратить внимание на первый тест и на 4 последних.
Все эти баги из-за приведенной выше строки.
И напоследок, мои любимые упоротые бенчмарки. Тот код, что я кидал раньше, с небольшой правкой в начале, и поправленный код orion_asm (добавление пробела на конец вынес отдельно, чтоб не править строку постоянно), миллион повторений, время в тиках (GetTickCount), релиз-сборка VS2012.
Цитата:
hello, world!
141 - 421
_____hello,____world dfdfdfdf dsfgsdfg wert ew rt__sd g d fgs df g sdfg sldfkgj sdkfg lskdf__sdflgksj dflkgjl kjlks___jj j j j l sdflgkj dfdf
1092 - 5304
(на месте _ стоят пробелы, просто форум много пробелов подряд сносит).
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием