1.12. Strings#

Strings are nothing but one-dimensional arrays of datatype char terminated by a null character ‘\0’. The following declaration and initialization creates a string consisting of the word “Hello”. To hold the null character at the end of the array, the size of the character array containing the string is one more than the number of characters in the word “Hello.”

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

Following is another way of initializing a string,

char greeting[6] = "Hello";

Note that, with this approach, you do not place the null character at the end of a string constant. The C compiler automatically places the ‘\0’ at the end of the string when it initializes the array. Let us try to print the above-mentioned string,

#include <stdio.h>

int main () {

   char greeting[6] = "Hello";
   printf("Greeting message: %s\n", greeting );
   return 0;
}

Following is the output of the code snippet given above,

Greeting message: Hello

C language supports a wide range of functions that manipulate null-terminated strings,

Function

Use

strcpy(s1,s2)

Copies string s2 into string s1.

strcat(s1,s2)

Concatenates string s2 onto the end of string s1.

strlen(s)

Returns the length of string s1.

strcmp(s1,s2)

Returns 0 if s1 and s2 are the same; less than 0 if s1<s2; greater than 0 if s1>s2.

strchr(s,c)

Returns a pointer to the first occurrence of character ch in string s1.

strstr(s1,s2)

Returns a pointer to the first occurrence of string s2 in string s1.

The following example uses some of the above-mentioned functions,

#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;
}

Following is the output of the code snippet given above,

strcpy(str3, str1): Hello
strcat(str1, str2): HelloWorld
strlen(str1): 10