С++ поддерживает широкий диапазон функций для манипуляций со строками. Самые известные из них:
strcpy( )
strcat( )
strcmp( )
strlen( )
Все строковые функции используют один и тот же заголовок <cstring>. Рассмотрим эти функции подробнее.
Вызов этой функции выглядит таким образом:
strcpy (куда, откуда)
Функция strcpy( ) копирует содержимое строки откуда в строку куда. Не забывайте, что массив, образующий куда, должен иметь достаточный размер, чтобы в него поместилась строка откуда. Если места в нем не хватит, то произойдет выход за пределы массива куда, что скорее всего, приведет к аварийному завершению программы.
Вызов этой функции выглядит таким образом:
strcat(s1,s2);
Функция strcat() присоединяет строку s2 к концу s1; строка s2 остается без изменений. Вы должны обеспечить достаточно большой размер строки s1, чтобы она могла вместить как свое исходное содержимое, так и содержимое s2.
strcmp( )
Вызов этой функции выглядит таким образом:
strcmp(s1,s2);
Функция strcmp() сравнивает две строки и возвращает 0, если они равны. Если s1 больше s2 лексикографически (т. е. по порядку следования символов алфавита), возвращается положительное число; если она меньше s2, возвращается отрицательное число.
При использовании strcmp() важно иметь в виду, что при равенстве строк она возвращает false. Таким образом, если вы хотите, чтобы что-то произошло при равенстве строк, вам придется использовать оператор !. В следующем примере условие, управляющее предложением if, истинно, если str равна строке "С++":
if(!strcmp(str, "С++") cout << "str = С++";
Общая форма вызова функции strlen( ) такова:
strlen(s);
Здесь s — это строка. Функция strlen() возвращает длину строки, на которую указывает s.
В приводимой ниже программе используются все четыре рассмотренные выше функции обработки строк: