C String
В языке C строки фактически используют нулевой символ\0Завершающий одномерный массив символов. Поэтому,\0используется для обозначения конца строки.
Нулевой символ) также известный как терминатор, сокращённоNUL, является числовым значением0управляющего символа,\0является экранирующим символом, означающим, что нужно сообщить компилятору, что это не символ0, а скорее нулевой символ.
Следующее объявление и инициализация создаютEXAMPLEстроку. Поскольку нулевой символ хранится в конце массива,\0, поэтому размер массива символов на единицу больше, чем у словаEXAMPLEколичество символов.
char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};
согласно правилам инициализации массива, вы можете записать приведённый выше оператор следующим образом:
char site[] = "EXAMPLE";
Ниже показано представление в памяти строк, определённых в C/C++:
На самом деле, вам не нужно помещатьnullСимвол помещается в конец строковой константы. Компилятор C при инициализации массива автоматически\0в конец строки. Давайте попробуем вывести вышеуказанную строку:
Пример
Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:
Example: EXAMPLE
В C есть большое количество функций для работы со строками:
| Порядковый номер | Функция и назначение |
|---|---|
| 1 | strcpy(s1, s2); Копирует строку s2 в строку s1. |
| 2 | strcat(s1, s2); Присоединяет строку s2 к концу строки s1. |
| 3 | strlen(s1); Возвращает длину строки s1. |
| 4 | strcmp(s1, s2); Если s1 и s2 совпадают, возвращает 0; если s1<s2, возвращает значение меньше 0; если s1>s2, возвращает значение больше 0. |
| 5 | strchr(s1, ch); Возвращает указатель на первое вхождение символа ch в строке s1. |
| 6 | strstr(s1, s2); Возвращает указатель на первое вхождение строки s2 в строке s1. |
В следующем примере используются некоторые из вышеперечисленных функций:
Пример
Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:
strcpy( str3, str1) : example strcat( str1, str2): examplegoogle strlen(str1) : 12
Вы можете найти больше функций для работы со строками в стандартной библиотеке C.
Другие расширения