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 ?