Большинство действий над строками реализуется с помощью стандартных функций. Библиотека языка Си содержит большое количество таких функций, прототипы которых определяются в заголовочном файле string.h. Рассмотрим некоторые из них.
Сравнение строк:
strcmp(str1,str2) – сравнивает две строки str1 и str2 и возвращает 0, если они одинаковы; результат отрицателен, если str1<str2 и положителен, если str1>str2.
strncmp(str1, str2, kol) – сравниваются части строк str1 и str2 из kol символов. Результат равен 0, если они одинаковы.
Сравнение двух строк выполняется последовательно слева неправо с учетом кодировки символов. Например, сравнивая стоки st1 и st2
char st1[10]="Пример";
char st2[10]="ПPимер";
int a;
if (strcmp(st1,st2)>0)
a=1;
else
a=2;
переменной а будет присвоено значение 1, так как код символа 'р' больше кода символа 'Р'.
Сцепление строк
strcat(str1,str2) - сцепление строк в порядке их перечисления.
strncat(str1,str2,kol) – приписывает kol символов строки str2 к строке str1.
Функция служит для объединения двух строк в одну. Например, в результате выполнения операторов:
char fam[] = "Андреева С.В. ";
char pr[7]= " "; //7 пробелов
strcat(fam,pr);
printf(“|%20s|”, fam);
на экран выведется строка:
|Андреева С.В. |
Заметим, что строка вывода занимает поле в 20 позиций, а переменная fam располагается в левой части поля.
Определение длины строки
strlen(str) – определяет длину строки str.
Пример.Определить длину строки
charfam[] = "Андреева С.В.";
printf("%d",strlen(fam));
функция strlen() вернёт значение равное 13 (символов).
Копирование строк
strcpy (str1,str2) – копирует строку str2 в строку str1.
strncpy (str1, str2, kol) – копирует kol символов строки str2 в строку str1.
Пример. Скопировать фамилию сотрудника в переменную fam и вывести на экран.
#include "stdafx.h"
#include<string.h>
int main()
{ char fam[15];
char *str = " Андреева С.В.";
strcpy(fam, str);
printf("|%s|\n", fam);
return 0;
}
В результате выполнения данных операторов на экран будет выведена строка:
|Андреева С.В.|