Special String Functions


The header file <string.h> contains many more string manipulation functions. They might be useful in certain situations.


strncpy() Function

In addition to the function strcpy() that copies one string to another, we have another method strncpy() that copies only the left-most n characters of the source string to the target string variable. This is a three-parameter function and is invoked as follows :

strncpy(str1,str2,4);

This statement copies the first 4 characters of the source string str2 into the target string str1. Since the first 4 characters may not include the terminating null character, we have to place it explicitly in the 5th position of str2 as shown below :

str1[5] = '\0';

Now, the string str1 contains a proper string.


strncmp() Functions

A variation of the function strcmp is the function strncmp(). This function has three parameters as illustrated in the function call below :

strncmp(str1,str2,n);

this compares the left-most n characters of str1 to str2 and returns.

  1. 0 if they are equal
  2. negative number, if str1 sub-string is less than str2;
  3. positive number.

strncat() Function

This is another concatenation function that takes three parameters as shown below :

strncat(str1,str2,n);

This call will concatenate the left-most n characters of str2 to the end of str1. Example :

str1 =

H E L L O \0

str2 =

W O R L D \0

After strncat(str1,str2,4); execution :

str1 =

H E L L O W O R L \0

strstr() Function

It is a two-parameter functions that can be used to locate a sub-string is a string. This takes the forms :

strstr(str1,str2);
strstr(str1,"abc");

The function strstr() searches the string str1 to see whether the string str2 is contained in str1. If yes, the function returns the position of the first occurrence of the sub-string. Otherwise, it returns a NULL pointer. Example :

if(strstr(str1,str2) == NULL)
  printf("substring is not found");
else
  printf("str2 is a substring of str1");

We also have methods to determine the existence of a character in a string. The function call

strchr(str1,'a');

will locate the first occurrence of the character 'a' and the call

strrchr(str1,'a');

will locate the last occurrence of the character 'a' in the string str1.