Хелпикс

Главная

Контакты

Случайная статья





Выделение слов из строки. Пример 7.11.



Выделение слов из строки

Очень часто при работе со строками необходимо выделять слова, т.е. группу символов, находящуюся между символами-разделителями (пробелами, запятыми, точками и т.п.).

Сформировать слово можно несколькими способами.

Формирование слова с помощью анализа компонентов строки

Пример 7.10. Пусть введена строка символов str, разделенных пробелами. Анализируя каждый символ, сформируем слово в переменной word и выведем его на печать.

#include <iostream>

#include <conio.h>

#include <string.h>

using namespace std;

 

void main(void)

{

char word[20];

char str[80];

int j=0;                    // Количество символов в слове word

clrscr();

cin.get(str,80);

for(int i=0;i<strlen(str);i++) // Пока не конец строки
{  
while(str[i]==' ') continue; // Пропуск пробелов в str
while(str[i]!=' ' && str[i]!='\0') // Пока текущий символ не //пробел и не нуль-символ
         word[j++]=str[i++]; } // Формирование слова word
    word[j]='\0'; // Нуль-символ в конец слова
    cout<<word; // Вывод слова
}  

Формирование слова с помощью функции strtok

Функция strtok позволяет выделять из строки слова, разделенные символами-разделителями. При первом обращении к функции необходимо указать строку, в которой происходит поиск слов, и строку из символов-разделителей. При последующем поиске вместо строки указывается NULL. К сожалению, данная функция портит содержимое исходной строки.

Пример 7.11.

char *word;  
word=strtok(str," ,.?"); // word - первое слово в строке
while(word)  
{  
cout<<word;  
word=strtok(NULL," ,.?"); // Следующее слово
}  

Формирование слова с помощью функции strpbrk

Функция strpbrk находит в анализируемой строке str первое местоположение любого из заданных символов-разделителей. При этом содержимое исходной строки не изменяется.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.