Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 12.01.2019, 16:36   #1
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 156
Репутация: 10
По умолчанию Написать функцию, которая принимает на вход строку и возвращает количество слов в нем

Мне нужно написать функцию, которая принимает на вход строку и возвращает количество слов в нем. Не используя стандартную функцию Split.Но мой код не правильно работает. Тоесть не все случаи захватывает
Код:

 static int CountWords(string str)
        {
            int count = 0;
            for (int index = 0; index < str.Length; ++index)
            {
                if (str[index] == ' ')
                    ++count;
            }
            return count + 1;
        }

dimaSlon вне форума   Ответить с цитированием
Старый 12.01.2019, 17:37   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 17,925
Репутация: 3428

icq: 512-765
skype: alexp.frl
По умолчанию

Так подумайте какие случаи бывают, в каких состояниях вы можете быть во время прохода строки (конечный автомат).
Alex11223 на форуме   Ответить с цитированием
Старый 13.01.2019, 22:22   #3
pu4koff
ПрофессионалФорумчанин
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,461
Репутация: 3616
По умолчанию

Пробелов может быть больше одного подряд и кроме него еще много разных знаков делят слова (табуляция, запятая, точка,...).
итого нужно дополнительно хранить флаг: предыдущий символ был частью слова или разделителем. Дальше проверку переписать на сравнение с несколькими разделителями. Например, можно завести множество символов и записать туда все разделители. Если очередной символ есть в этом множестве, значит это разделитель слова. Если предыдущий символ был частью слова, то увеличиваем счётчик, иначе ничего не делаем.
__________________
http://coub.com/view/2hhtg
pu4koff вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функцию, которая принимает список в качестве аргумента и возвращает строку, в которой все элементы списка разделены запятой и пробелом, а перед последним элементом вставлено слово likeaballoon Помощь студентам 2 02.11.2017 12:11
1.Описать функцию, которая возвращает количество слов, в которых содержится хотя бы одна заданная буква. sasharom97 Паскаль 2 07.12.2015 11:01
написать функцию которая подает на вход строку vova_makr Помощь студентам 3 25.09.2015 19:12
Функция, которая на вход принимает строку и в качестве результата возвращает ее копию sswt Помощь студентам 23 24.09.2015 09:09
Функцию, которая принимает в качестве параметра строку и символ и вычисляет количество таких символов в строке (Delphi) Loqwer78rus Помощь студентам 10 06.05.2014 10:52


18:02.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru