String Manipulation Functions (string.h)

This article discusses about the classic string manipulation functions defined
in the string.h header file.


From quite a while peoples have been asking me to write an article on the standard
library string manipulation functions. These functions are defined in the string.h
header file, so you must include it to use them.


There are dozens of string functions in the string.h header
file and thus it is difficult to list them all. So rather than listing them
all I would be discussing in detail about only few commonly used string manipulation
functions along with an example program illustrating how each function is used.


strlen:


  Prototype: int strlen(const char *string);

This function takes the base address of the string as the argument and returns
the number of characters in it (including spaces).


  // strlen() string manipulation
// function
#include<iostream.h>
#include<string.h>

void main(void)
{
char ch[]="String Manipulation";

cout<<strlen(ch);
}

OUTPUT:

   19

strcpy:


  Prototype: strcpy(char *target, const char *source);

This function takes two arguments (base address of two strings) and copies
the contents of the source string to the target string.


It doesn't check bounds thus its our responsibility to be sure that target
string is enough to store the contents of the source string.


  // strcpy - string manipulation
// function
#include<iostream.h>
#include<string.h>

void main(void)
{
char source[]="C++";
char target[10];

strcpy(target,source);

cout<<source;
cout<<endl;
cout<<target;
}

OUTPUT:

   C++
C++

strcat:


  Prototype: strcat(char *target, const char *source);

It concatenates or appends the source string at the end of the target string.


Target string is itself concentrated so it must be big enough to hold the concatenated
characters.


  // strcat - string manipulation
// function
#include<iostream.h>
#include<string.h>

void main(void)
{
char source[]="C++";
char target[20]="I like ";

strcat(target,source);

cout<<source;
cout<<endl;
cout<<target;
}

OUTPUT:

   C++
I like C++

strcmp:


  Prototype: int strcmp(const char *string1, const char *string2);

This function compares two strings and returns 0 if they are identical or else
returns a non-zero value.


Case (lower or upper) does matters, thus c++ and C++ are not the same according
to this function.


  // strcmp - string manipulation
// function
#include<iostream.h>
#include<string.h>

void main(void)
{
cout<<strcmp("c++","C++");
cout<<endl;

cout<<strcmp("Jerry","Jerry");
}

OUTPUT:

   1
0

Good-Bye!


Related Articles:


Check out this stream