In C language, a string is defined as a variable length array of characters terminated by the null character (‘\O’). Letters such as A, b, C, etc., digits such as 1, 2, 3, etc., and special symbols such as +,- ,*, [] , () , etc., except a few control characters, may be included in a string. The various functions of C Standard Library for manipulation of strings are contained in header file <string.h>.
A string may be declared-like an array of characters and initialized by a sequence of characters enclosed between double quotes (” “) as presented below. When the value of a string variable is assigned as a string of characters in double quotes, the system appends a null character ( ‘\ 0’ ) at the end of the string to mark the end of string.
char Name [10];
Name= “Shimla”;
The first line of the above code is the declaration of the string variable which is of type char and its identifier is Name . It is an array of characters with ten elements. The second line of the code assigns a value to the string variable. The value of ‘Name’ is a string of characters “Shim la”. The names of strings variables are decided as we do for any other variable. The number 10 in square bracket indicates that there could be 10 characters in the string including the null character (‘\O’). However, the number of characters could also be less than 10 as is the case with “Shimla”. The declaration and initialization may also be done in the same line in the following manner:
char Name [10]= “Shimla”;
In assignments such as the one shown above it is required to enclose the sequence of characters between double quotes as “Shimla”;. In the above case, the system would allocate 10 memory blocks, each equal to the size of the character, i.e., one byte. For wide characters, the type of string variable as well as size of each block would be different. Out of the 10 blocks, 7 blocks would be occupied by characters, i.e., 6 in Shimla and one null character ‘O/’; the remaining three blocks would be empty. The null character is automatically appended by the system whenever a value is assigned in double quotes (” ” ) . A string is an array; therefore, its name is a constant pointer to the memory block where the string is stored. Like arrays, strings could as well be declared and initialized without putting a number in square bracket as given below.
char Name[]= “Shimla”;
In this declaration, the system would allocate only 7 blocks of memory, each of one byte. So, this type bf declaration saves three bytes of memory. The string ‘Name’ in this declaration has only 7 characters (6 of Shimla and one null character ‘\O’). Since Name[] is a character array, its 7 elements are as listed below.
Name[0] =’s’ ;
Name[l] =’h’ ;
Name[2] = ‘i’ ;
Name[3] =’m’;
Name[4] =’l’;
Name[S] =’a’ ;
Name[6] = ‘\ 0 ‘;
Program presents an illustration of declaration of strings
#include <stdio.h> void main() { char Str1[10] = "Shimla" ; // A string may be a name char Str2 [] = "Dinesh"; char Str3 [] = "98156"; /*it may be string of digit characters or symbols as below.*/ char Str4 []= "@ ! # $ % ' ~ ^ & * () _ + = ;: {} () [] \t, \n"; clrscr(); printf("Str1 = %s\n", Str1); printf("Str2= %s \n", Str2); printf("Str3 is: %s\n", Str3); printf("Str4 is: %s\n", Str4); printf("Size of Str1 = %d\n", sizeof (Str1)); printf ("Size of Str2 = %d\n", sizeof(Str2)); }