Here, We will write a program in C to swap two strings using two different approaches.

Approach 1: Using inbuilt string functions:

  • This is the easiest technique to implement the above problem statement.
  • We use the inbuilt function strcpy from h header file and swap the text of both strings with the help of a temporarily provisioned array pointer – temp.



int main()
char str1[50], str2[50], *temp;

printf("Enter string 1: ");
fgets(str1, 50, stdin);
printf("\nEnter string 2: ");
fgets(str2, 50, stdin);

printf("\nBefore Swapping\n");
printf("First string: %s\n",str1);
printf("Second string: %s\n",str2);

temp = (char*)malloc(100);
strcpy(temp,str1);        //swapping values using a temp string pointer.
printf("After Swapping\n");
printf("First string: %s\n",str1);
printf("Second string: %s\n",str2);


return 0;



Enter string 1: Mindblowing!
Enter string 2: Fantastic!
Before Swapping

First string: Mindblowing!
Second string: Fantastic!

After Swapping

First string: Fantastic!
Second string: Mindblowing!


Approach 2: Without using string functions:

  • We will use a temp array here which will hold the characters of the first array on a temporary basis while swapping.
  • str1’s character is held in temp’s ith position, we save str2’s character into str1’s ith position.
  • The character at ith position of str2 is replaced by ith character of temp which holds original data of str1.
  • We continue with the process until the largest string’s null character is encountered.


#include <stdio.h>

int main()
char temp[100], *str1, *str2;
int i, size = 100;

printf("Enter the first string: ");
str1 = (char*)malloc(size);
getline(&str1, &size, stdin);

printf("\nEnter the second string: ");
str2 = (char*)malloc(size);
getline(&str2, &size, stdin);

for(i=0; str1[i]!='\0'|| str2[i]!='\0'; i++)
temp[i] = str1[i];
str1[i] = str2[i];
str2[i] = temp[i];

printf("\n\nThe strings after swapping:\n\n");
printf("First string:  %s \n", str1);
printf("First string:  %s  \n", str2);
return 0;



Enter the first string: How are you doing ?
Enter the second string: I am doing good !

The strings after swapping:
First string:  I am doing good !
Second string:  How are you doing ?


Report Error/ Suggestion

Related Posts:

CopyRight © 2020

CopyRight © 2020