Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 73, средняя оценка - 4.99
Ivanius
Сообщений: n/a
#1

Разделение строки на слова - C++

16.03.2007, 14:02. Просмотров 8969. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста, как разделить строку на отдельные слова. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2007, 14:02     Разделение строки на слова
Посмотрите здесь:

разделение строки на слова - C++
нужно разбить строку на слова (си) без использования библиотеки string.h (пользоваться можно только stdio.h) можно использовать...

Разделение строки на слова - C++
Текст в файле содержит числа, которые записаны в восьмеричной системе счисления. Преобразовать эти числа в десятичную систему счисления и...

Разделение строки на отдельные слова [С++] - C++
Надо разделить строку на отдельные слова. Использовать strtok() нельзя.

Символьные строки. Разделение на слова - C++
Помогите написать прогу. Не могу разобраться, какие команды применить. Так же нужно использовать отдельно функцию. В Файле находится...

С++, MFC, разделение строки типа CString на слова - C++
Есть три списка ListBox и одно поле редактирования EditBox. В EditBox вводится информация в формате «Фамилия Имя Отчество». По завершении...

Разделение строки типа String на отдельные слова с разделяющим символом - C++
Подскажите пожалуйста, как строку с n-ым количеством слов разделённых символом точка запятой разделить и поместить предположим в массив

Разделение слова на буквы - C++
Всем доброго времени суток. У меня возник вопрос. Допустим у есть переменная X типа string, в которую записано слово, "Code". Как мне...

Токенизация, разделение текста на слова - C++
Здравствуйте, по заданию необходимо 1.Прочитать текст из первого файла. 2.Выделить словоформы и вписать их в отдельный двумерный...

Разделение произвольного текста на слова - C++
Пытаюсь разделить произвольный текст на отдельные слова. И присвоить каждое слово элементу структуры. Но когда программа проходит первую...

Разделение строки - C++
Здравствуйте, помогите пожалуйста с заданием. Требуется разделить строку на предложение, предложения на слова, а затем вывести с каждого...

Разделение строки - C++
Здравствуйте, вопросик такой есть: Допустим, есть строка: "/TEXT parameters from text" и сама суть вопроса: Как заменить первый символ...

Разделение строки - C++
Доброго времени суток! Помогите написать разделение строки. Вводимые данные: число от 0 - 99. Нужно разбить на 2 числа. То есть например:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mik-a-el
CyberForum Owner
57119 / 36869 / 231
Регистрация: 10.04.2006
Сообщений: 12,660
16.03.2007, 14:09     Разделение строки на слова #2
Алгоритм:
1. Запоминаешь позицию символа.
2. Идешь по каждому символу строки, пока не встретишь пробел, точку, запятую или какой другой символ разделитель - это будет конец слова.
3. Берешь подстроку от первой позиции (п.1) до полученной - это будет само слово.
4. Идешь дальше, пока символы-разделители не закончатся. Как закончатся - это начало следующего слова. Далее - п.1 и так до конца строки.
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
30.01.2010, 10:33     Разделение строки на слова #3
Цитата Сообщение от mik-a-el Посмотреть сообщение
Алгоритм:
1. Запоминаешь позицию символа.
2. Идешь по каждому символу строки, пока не встретишь пробел, точку, запятую или какой другой символ разделитель - это будет конец слова.
3. Берешь подстроку от первой позиции (п.1) до полученной - это будет само слово.
4. Идешь дальше, пока символы-разделители не закончатся. Как закончатся - это начало следующего слова. Далее - п.1 и так до конца строки.
Это всё конечно ясно, но как поступать со словами типа u.s.a или J.W. Harisson, после преведеного выше алгоритма мы получим совсем неправильные слова типа u s a и т.д, что делать с такими словами?
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
30.01.2010, 12:11     Разделение строки на слова #4
Чтобы понять, что с ними делать, надо сначала определить самое главное - а что есть "слово"?

Если "словом" считается любая последовательность символов, ограниченная с двух сторон (началом/концом строки либо любыми из набора символов-разделителей), то предложенный mik-a-el алгоритм абсолютно правильный.
В противном случае, приводи детальное определение понятия "слово".
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
30.01.2010, 13:22     Разделение строки на слова #5
Цитата Сообщение от CheshireCat Посмотреть сообщение
Чтобы понять, что с ними делать, надо сначала определить самое главное - а что есть "слово"?

Если "словом" считается любая последовательность символов, ограниченная с двух сторон (началом/концом строки либо любыми из набора символов-разделителей), то предложенный mik-a-el алгоритм абсолютно правильный.
В противном случае, приводи детальное определение понятия "слово".
Я имею ввиду произвольный текст, который может быть и последовательностью ограниченной пробелами, точками, запятыми и словом может быть инициалы или аббревиатуры, например u.s.a, тогда как в таком случае поступать? у мя есть некоторое решение, но для этого надо считывать слова посимвольно причем считывать надо сразу 3 символа(чтобы определить это аббревиатура или просто разделитель), я хочу узнать можно как-то по рациональнее это сделать?
insideone
Модератор
Автор FAQ
3636 / 914 / 49
Регистрация: 10.01.2010
Сообщений: 2,464
30.01.2010, 21:10     Разделение строки на слова #6
Если аббревиатуры то что мешает сделать проверку по виду "Если буква заглавная то знак точки после неё не считать разрывом между словами". На деле это можно реализовать дополнительным флагом "bSkip". Ну примерно так...

Насчет кривых входных данных - какие данные такие и результат. От всего перестраховаться не возможно. Это мне напоминает ситуацию написания антимата для чата =)
Yandex
Объявления
30.01.2010, 21:10     Разделение строки на слова
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru