Строки на самом деле являются одномерным массивом символов, оканчивающихся нулевым символом ‘\ 0’. Таким образом, строка с нулевым символом в конце содержит символы, которые составляют строку, за которой следует ноль .
Следующее объявление и инициализация создают строку, состоящую из слова «Hello». Чтобы держать нулевой символ в конце массива, размер массива символов, содержащего строку, на один больше, чем количество символов в слове «Hello».
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
Если вы следуете правилу инициализации массива, вы можете написать приведенное выше утверждение следующим образом:
char greeting[] = "Hello";
Ниже приводится представление в памяти определенной выше строки в C / C ++ —
На самом деле, вы не помещаете нулевой символ в конец строковой константы. Компилятор C автоматически помещает ‘\ 0’ в конец строки, когда инициализирует массив. Давайте попробуем напечатать вышеупомянутую строку —
#include <stdio.h> int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; printf("Greeting message: %s\n", greeting ); return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Greeting message: Hello
C поддерживает широкий спектр функций, которые обрабатывают строки с нулевым символом в конце —
Sr.No. | Функция и цель |
---|---|
1 |
strcpy (s1, s2); Копирует строку s2 в строку s1. |
2 |
strcat (s1, s2); Объединяет строку s2 в конец строки s1. |
3 |
StrLen (S1); Возвращает длину строки s1. |
4 |
strcmp (s1, s2); Возвращает 0, если s1 и s2 одинаковы; меньше 0, если s1 <s2; больше 0, если s1> s2. |
5 |
strchr (s1, ch); Возвращает указатель на первое вхождение символа ch в строке s1. |
6 |
strstr (s1, s2); Возвращает указатель на первое вхождение строки s2 в строку s1. |
strcpy (s1, s2);
Копирует строку s2 в строку s1.
strcat (s1, s2);
Объединяет строку s2 в конец строки s1.
StrLen (S1);
Возвращает длину строки s1.
strcmp (s1, s2);
Возвращает 0, если s1 и s2 одинаковы; меньше 0, если s1 <s2; больше 0, если s1> s2.
strchr (s1, ch);
Возвращает указатель на первое вхождение символа ch в строке s1.
strstr (s1, s2);
Возвращает указатель на первое вхождение строки s2 в строку s1.
В следующем примере используются некоторые из вышеупомянутых функций —
#include <stdio.h> #include <string.h> int main () { char str1[12] = "Hello"; char str2[12] = "World"; char str3[12]; int len ; /* copy str1 into str3 */ strcpy(str3, str1); printf("strcpy( str3, str1) : %s\n", str3 ); /* concatenates str1 and str2 */ strcat( str1, str2); printf("strcat( str1, str2): %s\n", str1 ); /* total lenghth of str1 after concatenation */ len = strlen(str1); printf("strlen(str1) : %d\n", len ); return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —