Функции работы со строками

 

Для облегчения работы со строками в стандартной библиотеки С <string.h> есть несколько специальных функций. Например, для копирования одной строки в другую используется функция strcpy().

char a[30]; //выделяет память для строки их 29 символов

strcpy (a, ”This is a text.”) //копирует строковый литерал в символьный массив

cout<< a<endl;

char a2[]=”A second string.”

strcpy (a,a2);

cout<< a<<endl;

Функция strcmp() — сравнивает две строки (в соответствии с алфавитом); функция stricm() — сравнивает две строки (в соответствии с алфавитом) без учета регистра символов.

Следующая функция strcmp() сравнивает символьные массивы s1 и s2:

int strcmp(char[s1], char[s2]);

Если в соответствии с алфавитом строка s1 оказывается перед строкой s2, то функция возвращает отрицательное целое. Если обе строки в соответствии с алфавитом идентичны, то функция возвращает 0. Если в соответствии с алфавитом строка s1 оказывается после строки s2, то функция возвращает положительное целое. Например,

char city [20];

cin>> city;

if (strcmp(city,”Kharkov”)==0)

cout>>”You live in good town!”;

В приведенном примере значение строки city вводится с клавиатуры и сравнивается со строкой Kharkov. Если строки идентичны, на экран выводится сообщение You live in good town! Однако, если будет введено, например, kharkov, то соответствие не будет полным, поскольку регистр строк разный. Для решения такого рода проблемы используется функция stricm(), работающая аналогично strcmp(), но игнорирующая регистр строки.