Библиотечные функции работы со строками символов
С помощью функций стандартной библиотеки языка реализованы многие часто используемые операции над символьными строками. Прототипы функций для работы со строками содержатся в заголовочном файле <string.h>. Функции работают только с ASCIIZ-строками. Если в строке отсутствует нуль-терминатор, обработка строки может продолжаться сколь угодно долго. Функции в качестве аргумента передаются как правило указатели на строки. Если при выполнении функции выполняется перенос символов строки из одного места-источника в место-назначение, то для последнего должно быть зарезервировано место в памяти. Приведем ряд наиболее употребительных функций для работы со строками символов. Функция копирования строк. char* strcpy(char* target, const char* source);
Копирует строку source по адресу target, включая завершающий нулевой байт. Функция предполагает, что памяти, выделенной по адресу target, достаточно для копируемой строки. В качестве результата функция возвращает адрес первой строки.
Пример.
char str1[10], str2[10];strcpy(str1, "Hello");strcpy(str2, str1); Функция объединения (конкатенации) строк. char* strcat(char* target, const char* source);Присоединяет вторую строку к концу первой, включая завершающий нулевой байт. На место завершающего нулевого байта первой строки переписывается первый символ второй строки. В результате по адресу target получается строка, образованная слиянием первой со второй. В качестве результата функция возвращает адрес первой строки.
Пример.
char str1[20], str2[20];strcpy(str1, "Hello ");strcpy(str2, " world");strcat(str1, str2); Функция объединения (конкатенации) строк. char* strncat(char* dest, const char* source, size_t size); Присоединяет к концу строки, на которую указывает dest, sizeсимволов строки source. Пример.char str1[20], str2[20];strcpy(str1, "01234");strcpy(str2, "56789");strncat(str1, str2,3); Результат str1будет:01234567 Функция сравнения строк. int strcmp(const char* string1, const char* string2);Сравнивает две строки в лексикографическом порядке (по алфавиту). Если первая строка должна стоять по алфавиту раньше, чем вторая, то результат функции меньше нуля, если позже – больше нуля, и ноль, если две строки равны.
Пример.
Int res;
char str1[20],str2[20],
str3[20], str4[20];
strcpy(str1, "Иванов");
strcpy(str2, "Ивашов");
strcpy(str3, "Галиев");
strcpy(str4, "Иванов");
res=strcmp(str1,str2); // res = -1
res=strcmp(str1,str3); // res = 1
res=strcmp(str1,str4); // res = 0
Функция вычислени длины строки строки. size_t strlen(const char* string); Определяет длину строки в байтах, не считая завершающего нулевого байта. Пример.char str1[20];
strcpy(str1, "Иванов");
res=strlen(str1); // res = 6Дата добавления: 2016-04-22; просмотров: 919;