Следующие функции выполняют операции с символьными массивами как со строками в стиле С и учитывают наличие нулевого байта в конце строки.
• Функция strlen() возвращает количество символов в строке s (длину строки) без учета нулевого байта:
size_t strlen(const char *s);
• Функция streat () добавляет строку Source в конец строки с Dest и возвращает указатель на Dest:
char * strcat(char *Dest, const char *Source);
Символьный массив Dest должен иметь размер не менее strlen(Dest)+ strlen(Sourse) + 1 байтов.
• Функция strncat () добавляет не более п символов из строки Source в конец строки Dest и возвращает указатель на Dest:
char * strncat(char *Dest. const char *Source, size_t n);
В массиве Dest должно быть не менее strlen(Dest) + n + 1 байтов.
• Функция s t г с h г () выполняет поиск символа с кодом с h слева направо в строке string;
const char* strchrCconst char* string, int ch); char* strchr(const char* string, int ch);
Функция возвращает указатель на первое вхождение символа. Если символ не обнаруживается, возвращает NULL (нулевой указатель).
• Функция s t г г с h г () делает то же самое, что и функция s t г с h г (), но справа налево:
const char* strrchr(const char* string, int ch); char* strrchr(const char* string, int ch);
• Функция strstr() выполняет поиск строки Search в строке string:
const char* strstr(const char* string, const char* Search): char* strstr(const char *string, const char *Search):
Функция возвращает указатель на первое вхождение Search. Если строка не обнаружена, то возвращает нулевой указатель (NULL).
• Функция st rcspn () возвращает указатель на первое вхождение любого символа из строки CharSetB строке string или NULL, если такого символа не обнаружено: *
size_t strcspn(const char *string, const char *CharSet);
• Функция strspn() возвращает указатель на первый же символ из строки Char Set, который не входит в строку string, или NULL в противном случае:
size_t strspn(const char *string, const char *CharSet);
• Функция strpbrk() возвращает указатель на символ, являющийся первым вхождением любого из символов строки CharSet в строку str:
const char* strpbrk(const char* str, const char* CharSet): char* strpbrk(const char *str, const char *CharSet);
Если символ не найден, функция возвращает NULL.
• Функция strtok() возвращает указатель на следующую лексему из строки Token, отделенную любым из символов-разделителей строки Delim:
char * strtok(char *Token, const char *Delim);
Первый вызов и последующие вьтзовы различаются. Следующий пример показывает применение этой функции:
#include <cstring> #include <iostream>
using namespace std; int main()
{ char input[100] = "tokens,teacher,count.word";
char *p = strtok(input, ","); // ищет первую запятую
if (p) cout << p << endl; // выводит "abc"
while(p!=NULL)
{ p = strtok(NULL, ","); // ищет следующую запятую
if (p) cout << p << endl; // выводит следующую лексему
}
return 0;
}
Программа выведет на экран следующее:
tokens teacher count word
Функция strtok() чрезвычайно полезна для выделения из строки, например, идентификаторов.
• Функция strcpyO копирует строку Source в другую строку Dest и возвращает указатель на Dest:
char * strcpy(char *Dest, const char *Source);
В массиве Dest должно быть не менее strlen(Source) + 1 байтов.
• Функция strncpy () копирует не более чем count символов из строки Source в другую строку Dest и возвращает Dest:
char * strncpy(char *Dest, const char *Source, size_t count);
В массиве Dest должно быть не менее n + 1 байтов.
• Функция s t г cmp () лексикографически сравнивает строки stг i ngl и stг i ng2:
int strcmp(const char *stringl, const char *string2); Функция возвращает:
О -1, если содержимое stringl меньше содержимого string2; О 0, если содержимое stringl равно содержимому string2; О +1, если содержимое stringl больше содержимого string2.
• Функция strncmp () сравнивает строку st г i ngl и первые п символов строки string2:
int strncmp(const char *stringl, const char *string2, size_t n);
Функция возвращает результат аналогично функции strcmpO.
Представленные далее функции требуют установки локального контекста с помощью С-функции setlocaleQ.
• Функция s t г с о 11 () сравнивает строки как функция s t г с m р (), учитывая параметры локализации:
int strcoll(const char *stringl, const char *string2);
• Функция strxf rm() преобразует строку Source и помещает ее в строку Dest на основе текущего локального контекста:
size_t strxfrm(char *Dest, const char *Source, size__t count):
Преобразуется не более count символов. Функция возвращает полученную длину строки Dest без учета завершающего символа. |