The ones who are crazy enough to think they can change the world are the ones who do.
- Steve Jobs

strdup() In C

Purpose of strdup()

strdup() is one of the inbuilt string function in c programming which is used to duplicate a given string.

How strdup() works

The following diagram clearly illustrate the working principle of strdup() inbuilt string function in C.

strdup() in c

In the above diagram strdup() takes single parameter say a str whose duplicate string will be generated by strdup() and assigned to another character variable say a dupstr.

Syntax - strdup() in C

  • strdup() accepts single parameter.
  • A parameter must be a string.
  • To use strdup() inbuilt string function in C, we need to declare #include<string.h> header file.
Syntax
strdup(str);

C Program - strdup()

Let us work through strdup() function. In the following program we will create a duplicate string using strdup() inbuilt string function.

c-using-strdup.c
#include <stdio.h>
#include<string.h>
int main()
{
char str1[30] = "this is strdup", *str2;
str2 = strdup(str1);
printf("The Original string is : %s ", str1);
printf("\nThe duplicated string is : %s ", str2);
return 0;
}
The Original string is : this is strdup
The duplicated string is : this is strdup

Note:

The above program prints the duplicated string of str1.

C Program - Without strdup()

Let us duplicate a string without using inbuilt string function strdup().

c-without-strdup.c
#include <stdio.h>
#include<string.h>
int main()
{
char str1[30] = "this is strdup", *str2;
char i;
str2 = str1;
printf("The Original string is : %s ", str1);
printf("\nThe duplicated string is :");
for(i=0;str1[i]!='\0';i++)
{
printf("%c", *str2++);
}
return 0;
}
The Original string is : this is strdup
The duplicated string is : this is strdup

Note:

The above program looks verbose but yields the same result.

Report Us

We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.

Report