Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
30.05.2020
Размер:
428.13 Кб
Скачать

возвращает указатель на начало строки, полученной в результате реверса строки s.

заполнение строки символом

Функция char * strset (char *s, int ch)

помещает символ ch во все позиции строки s.

пример применения функций преобразования

//пример_5

#include <cstdlib> int main()

{

char a[ ] = "10) rost – 162 cm, ves – 59.5 kg"; int num;

long rost; double ves;

num = atoi(a);

//преобразование, начиная с символа 1

с индексом 0 и до символа ‘)’

rost =

atol

(&a[11]);

//преобразование, начиная с символа 1

с индексом 11

и до ‘пробела’

ves =

atof

(&a[25]);

//преобразование, начиная с символа 5

с индексом 25

и до ‘пробела’

cout << num

<< " " << rost << " " << ves; //10

162

59.5

 

_getch();

 

 

 

 

 

 

return

0;

 

 

 

 

 

 

}

 

 

 

 

 

 

 

Выделение лексем

Функция char * strtok (char *s1, const char *s2)

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

#include <string.h>

 

 

 

 

int main()

 

 

 

 

 

{ char string[ ] = "this sentence;has-5words.";

 

 

char *tokenPtr;

 

 

 

 

cout << string << endl << "by the words:" << endl;

 

 

tokenPtr = strtok (string, " ;-."); //пробел, ;, -, .

– разделители

while (tokenPtr !=NULL)

 

 

 

 

{cout << tokenPtr << endl;

 

 

 

tokenPtr = strtok (NULL," ;-."); //при последующем вызове

 

}

//нулевой указатель передается в качестве первого параметра

 

 

 

 

 

_getch();

 

 

 

 

 

return 0;

 

 

 

 

 

}

tokenPtr

= strtok

(NULL," ;-.");

 

 

Вызо в

трактуется

так, будто первый

аргумент

указывает на

символ,

следующий непосредственно

после 0-символа,

записанного в строку string после первого выделения лексемы. Таким образом, в нашем примере, после выделения первого слова указатель token содержит адрес первого символа еще не просмотренной части строки. После просмотра всей строки он будет указывать на символ-разделитель в конце строки (‘.’).

Очевидно, что при включении в список разделителей символов, завершающих предложение (. ! ?), мы получим выделение в качестве лексем – предложений, а при включении в список разделителей символов, разделяющих слова (пробел . , ; –), мы получим выделение в качестве лексем – слов.

Программирование – лекция 13 (лекции Стрикелевой Л.В.)

23

 

Соседние файлы в папке Лабораторні роботи