Строка в СИ определяется как массив символов в частности одномерных массивов. В языке СИ отдельного типа строки символа нет. В си СИМВОЛЬНАЯ СТРОКА- одномерный массив типа char заканчивающийся нулевым байтом.
Нулевой байт- это байт каждый бит которого равен нулю. Для нулевого байта определена специальная символьная константа ‘\0’
Это следует учитывать при описании соответствующего массива символов.
Так, если строка должна содержать n- символов, то в описании массива следует указывать n+1, т.е мы должны объявить char s(n+).
Функция работы со строками.
strlen(имя_строки) |
определяет длину указанной строки, без учёта нуль-символа |
Копирование строк |
|
strcpy(s1,s2) |
выполняет побайтное копирование символов из строки s2 в строку s1 |
strncpy(s1,s2, n) |
выполняет побайтное копирование n символов из строки s2 в строку s1. возвращает значения s1 |
Конкатенация строк |
|
объединяет строку s2 со строкой s1. Результат сохраняется в s1 |
|
объединяет n символов строки s2 со строкой s1. Результат сохраняется в s1 |
|
Сравнение строк |
|
сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2, <0 — если s1>s2 С учётом регистра |
|
сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2, <0 — если s1>s2 С учётом регистра |
|
stricmp(s1,s2) |
сравнивает строку s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2, <0 — если s1>s2 Без учёта регистра |
strnicmp(s1,s2,n) |
сравнивает n символов строки s1 со строкой s2 и возвращает результат типа int: 0 –если строки эквивалентны, >0 – если s1<s2, <0 — если s1>s2 Без учёта регистра |
Обработка символов |
|
возвращает значение true, если с является буквой или цифрой, и false в других случаях |
|
возвращает значение true, если с является буквой, и false в других случаях |
|
возвращает значение true, если с является цифрой, и false в других случаях |
|
возвращает значение true, если с является буквой нижнего регистра, и false в других случаях |
|
возвращает значение true, если с является буквой верхнего регистра, и false в других случаях |
|
возвращает значение true, если с является пробелом, и false в других случаях |
|
если символ с, является символом нижнего регистра, то функция возвращает преобразованный символ с в верхнем регистре, иначе символ возвращается без изменений. |
|
Функции поиска |
|
поиск первого вхождения символа с в строке s. В случае удачного поиска возвращает указатель на место первого вхождения символа с. Если символ не найден, то возвращается ноль. |
|
определяет длину начального сегмента строки s1, содержащего те символы, которые не входят в строку s2 |
|
возвращает длину начального сегмента строки s1, содержащего только те символы, которые входят в строку s2 |
|
strprbk(s1,s2) |
Возвращает указатель первого вхождения любого символа строки s2 в строке s1 |
Функции преобразования |
|
преобразует строку s1 в тип double |
|
преобразует строку s1 в тип int |
|
преобразует строку s1 в тип long int |
|
Функции стандартной библиотеки ввода/вывода <stdio> |
|
считывает символ с со стандартного потока ввода, возвращает символ в формате int |
|
считывает поток символов со стандартного устройства ввода в строку s до тех пор, пока не будет нажата клавиша ENTER |