Monday, 28 March 2016

Strings in C

C Strings

String in C language is an array of characters that is terminated by \0 (null character).
There are two ways to declare string in c language.
  1. By char array
  2. By string literal
Let's see the example of declaring string by char array in C language.
  1. char ch[10]={'j''a''v''a''t''p''o''i''n''t''\0'};  
As you know well, array index starts from 0, so it will be represented as in the figure given below.
C Array
While declaring string, size is not mandatory. So you can write the above code as given below:
  1. char ch[]={'j''a''v''a''t''p''o''i''n''t''\0'};  
You can also define string by string literal in C language. For example:
  1. char ch[]="javatpoint";  
In such case, '\0' will be appended at the end of string by the compiler.

Difference between char array and string literal

The only difference is that string literal cannot be changed whereas string declared by char array can be changed.

String Example in C

Let's see a simple example to declare and print string. The '%s' is used to print string in c language.
  1. #include <stdio.h>  
  2. void main ()  
  3. {  
  4.    char ch[11]={'j''a''v''a''t''p''o''i''n''t''\0'};  
  5.    char ch2[11]="javatpoint";  
  6.   
  7.    printf("Char Array Value is: %s\n", ch);  
  8.    printf("String Literal Value is: %s\n", ch2);  
  9. }  
Output:
Char Array Value is: javatpoint
String Literal Value is: javatpoint

C String Functions

There are many important string functions defined in "string.h" library.
No.FunctionDescription
1)strlen(string_name)returns the length of string name.
2)strcpy(destination, source)copies the contents of source string to destination string.
3)strcat(first_string, second_string)concats or joins first string with second string. The result of the string is stored in first string.
4)strcmp(first_string, second_string)compares the first string with second string. If both strings are same, it returns 0.

1) C String Length: strlen()

The strlen() function returns the length of the given string. It doesn't count null character '\0'.
  1. #include <stdio.h>  
  2. void main()  
  3. {  
  4.    char ch[20]={'j''a''v''a''t''p''o''i''n''t''\0'};  
  5.    printf("Length of string is: %d",strlen(ch));  
  6. }  
Output:
Length of string is: 10

2) C Copying String: strcpy()

The strcpy(destination, source) function copies the source string in destination.
  1. #include <stdio.h>  
  2. void main()  
  3. {  
  4.    char ch[20]={'j''a''v''a''t''p''o''i''n''t''\0'};  
  5.    char ch2[20];  
  6.    strcpy(ch2,ch);  
  7.    printf("Value of second string is: %s",ch2);  
  8. }  
Output:
Value of second string is: javatpoint

3) C String Concatenation: strcat()

The strcat(first_string, second_string) function concatenates two strings and result is returned to first_string.
  1. #include <stdio.h>  
  2. void main()  
  3. {  
  4.    char ch[10]={'h''e''l''l''o''\0'};  
  5.    char ch2[10]={'c''\0'};  
  6.    strcat(ch,ch2);  
  7.    printf("Value of first string is: %s",ch);  
  8. }  
Output:
Value of first string is: helloc

4) C String Comparision: strcmp()

The strcmp(first_string, second_string) function compares two string and returns 0 if both strings are equal.
Here, we are using gets() function which reads string from the console.
  1. #include <stdio.h>  
  2. void main()  
  3. {  
  4.    char str1[20],str2[20];  
  5.   printf("Enter 1st string: ");  
  6.   gets(str1);//reads string from console  
  7.   printf("Enter 2nd string: ");  
  8.   gets(str2);  
  9.   if(strcmp(str1,str2)==0)  
  10.       printf("Strings are equal");  
  11.   else  
  12.       printf("Strings are not equal");  
  13. }  
Output:
Enter 1st string: hello
Enter 2nd string: hello
Strings are equal

No comments:

Post a Comment