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 ?

 

Report Error/ Suggestion

Related Posts:

[yuzo_views]











CopyRight © 2019

CopyRight © 2019