Program to Swap two Strings in C
Written by
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.
Code:
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
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.
strcpy(str1,str2);
strcpy(str2,temp);
printf("After Swapping\n");
printf("First string: %s\n",str1);
printf("Second string: %s\n",str2);
free(temp);
getch();
return 0;
}
Output:
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.
Code:
#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;
}
Output:
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 ?