Функции для работы со строками сожердатся в библиотеке string.lib (подключение: #include string.h).
Наиболее часто применяются следующие функции:
char *strcpy(st1, st2) – копирует содержимое строки st2, включая нулевой символ, в строку st1.
char *strcat(st1, st2) – добавляет справа к строке st1 содержимое строки st2.
int strcmp(st1, st2) – сравнивает содержимое строк st2 и st1. Если st1 < st2, то результат равен –1, если st1 = st2 – результат равен нулю, если st1 > st2 – результат равен 1.
char *strstr(st1, st2) – возвращает указатель на первое появление подстроки st2 в строке st1.
char *strchr(st, sh) – возвращает указатель на первое появление символа ch в строке st.
char *strtok(st1, st2) – возвращает указатель на лексему, находящуюся в строке st1. При первом вызове функция возвращает указатель на первый символ в st1, а после первой лексемы устанавливает нулевой символ. При последующих вызовах функции со значением NULL в качестве первого аргумента указатель аналогичным образом переходит к следующим лексемам. После того как закончились все лексемы, указатель устанавливается в NULL.
int strlen(st) – возвращает длину строки st.
char *strrev(st) – изменяет порядок следования символов в строке на противоположный.
сhar *strdup(st); – дублирует строку st.
сhar *strlwr(st) – конвертирует символы строки st к нижнему регистру.
сhar *strupr(st) – конвертирует символы строки st к верхнему регистру.
int atoi(st) – преобразует строку st в число целого типа (int).
double atof(st) – преобразует строку st в число действительного типа.
char *itoa(a, st, base) – преобразует число целого типа a в строку st (base – основание системы счисления).
char *gcvt(a, dec, st); – преобразует число действительного типа a в строку st. Значение dec указывает на число десятичных разрядов (не более 18).
Эти функции предназначены для работы со строками в языке программирования C++. Вот описание каждой из них:
std::strcpy - копирует содержимое строки st2, включая нулевой символ, в строку st1.
std::strcat - добавляет справа к строке st1 содержимое строки st2.
std::strcmp - сравнивает содержимое строк st2 и st1. Если st1 < st2, то результат равен –1, если st1 = st2 – результат равен нулю, если st1 > st2 – результат равен 1.
std::strstr - возвращает указатель на первое появление подстроки st2 в строке st1.
std::strchr - возвращает указатель на первое появление символа ch в строке st.
std::strtok - возвращает указатель на лексему, находящуюся в строке st1. При первом вызове функция возвращает указатель на первый символ в st1, а после первой лексемы устанавливает нулевой символ. При последующих вызовах функции со значением NULL в качестве первого аргумента указатель аналогичным образом переходит к следующим лексемам. После того как закончились все лексемы, указатель устанавливается в NULL.
std::strlen - возвращает длину строки st.
std::strrev - изменяет порядок следования символов в строке на противоположный.
std::strdup - дублирует строку st.
std::strlwr - конвертирует символы строки st к нижнему регистру.
std::strupr - конвертирует символы строки st к верхнему регистру.
std::stoi - преобразует строку st в число целого типа (int).
std::stod - преобразует строку st в число действительного типа.
std::to_string - преобразует число a в строку st (base – основание системы счисления).
std::to_chars - преобразует число a в строку st (base – основание системы счисления).
std::atof - преобразует строку st в число действительного типа.
std::itoa - не является стандартной функцией в C++, но может быть доступна в ряде компиляторов и библиотек. Она преобразует число целого типа a в строку
Кроме перечисленных функций в библиотеке string.h также есть и другие полезные функции:
- strchrnul(st, ch) – возвращает указатель на первое вхождение символа ch в строку st. Если символ не найден, то возвращается указатель на нулевой символ в конце строки (то же самое, что и strchr, но без проверки на NULL).
- strpbrk(st1, st2) – возвращает указатель на первое вхождение в строке st1 любого символа из строки st2. Если символы не найдены, возвращается NULL.
- strspn(st1, st2) – возвращает количество символов в начале строки st1, которые присутствуют также и в строке st2.
- strcspn(st1, st2) – возвращает количество символов в начале строки st1, которые НЕ присутствуют в строке st2.
- strtok_r(st1, st2, ptr) – функция strtok, но с использованием указателя на сохранение текущего положения (в переменной ptr).
- strncmp(st1, st2, n) – сравнивает n символов из строк st1 и st2. Результат аналогичен функции strcmp.
И многие другие. Все они предназначены для работы со строками и могут значительно упростить написание кода, связанного с обработкой текстовых данных.
В Си++ для работы со строками предназначен класс string, для работы с которым необходимо написать #include А функции из string.h - это функции для работы со строками из чистого Си. В программах на Си++ их можно также подключить, используя #include Теперь о том, что вам там написали про то, что якобы "Наиболее часто применяются следующие функции". Так вот, реально из всего перечисленного наиболее полезны будут следующие функции: strlen
strcmp
strncmp
strdup Менее часто нужны strchr
strstr ⚠⚠⚠⚠⚠⚠⚠⚠
НИ В КОЕМ СЛУЧАЕ не должны использоваться такие функции, как strcpy и strcat так как они не проверяют факт переполнения буфера. Вместо этого используйте функцию snprintf
⚠⚠⚠⚠⚠⚠⚠⚠
Все остальные функции из тех, что вам перечислили, лучше заменить на другие. В частности, на практике очень часто возникает задача по преобразованию строки в число и ее лучше решать при помощи семейства функций strtol из stdlib.h