How to write a C Program to Reverse Order of Words in a String with an example. For example, the tutorial gateway will become gateway tutorial
C Program to Reverse Order of Words in a String Example 1
This program to reverse words in a string in c allows the user to enter a string (or character array), and a character value. Next, it will reverse the order of words inside a string.
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len, startIndex, endIndex;
printf("\n Please Enter any String : ");
gets(str);
len = strlen(str);
endIndex = len - 1;
printf("\n ***** Given String in Reverse Order ***** \n");
for(i = len - 1; i >= 0; i--)
{
if(str[i] == ' ' || i == 0)
{
if(i == 0)
{
startIndex = 0;
}
else
{
startIndex = i + 1;
}
for(j = startIndex; j <= endIndex; j++)
{
printf("%c", str[j]);
}
endIndex = i - 1;
printf(" ");
}
}
return 0;
}
Within this C Program to reverse words in a string Here, we used For Loop to iterate each and every character in a String, and remove all the duplicate characters in it.
for(i = len - 1; i >= 0; i--) { if(str[i] == ' ' || i == 0) { if(i == 0) { startIndex = 0; } else { startIndex = i + 1; } for(j = startIndex; j <= endIndex; j++) { printf("%c", str[j]); } endIndex = i - 1; printf(" "); } }
User entered values in this C program to reverse words in a string
str[] = Hello World
len = 11
endIndex = len – 1 = 10
For Loop – First Iteration: for(i = len – 1; i >= 0; i–)
for(i = 10; 10 >= 0; 10–)
Next, it will enter into the If Statement to check whether the str[i] is equal to empty space or i = 0
This condition will be true once it reaches to empty space after World
for(i = 5; 5 >= 0; 5–)
if(str[5] == ‘ ‘ || 5 == 0) – Condition is True so, it will enter into next If statement
if(i == 0) => if(5 == 0) – Condition is False so, statement inside the else block will be executed
startIndex = i + 1
startIndex = 6
Second For Loop – First Iteration: for(j = startIndex; j <= endIndex; j++)
=> for(j = 6; 6 <= 10; 6++)
Within the For Loop we used C Programming printf statement to print single character
printf(“%c”, str[j]) => W
Do the same for j = 7, j = 8, j= 9, and j = 10. Next, it will start the First For Loop iteration where i = 4.
Do the same for i = 4, i = 3, i = 2, i = 1 and i = 0 in the reverse words in a given string in c program
C Program to Reverse Order of Words in a String Example 2
This reverse words in a string in this program will traverse the string from the end position to start position. Once it finds empty space, it will replace the empty space with a NULL value, and prints the string after that Null value.
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len;
printf("\n Please Enter any String : ");
gets(str);
len = strlen(str);
printf("\n ***** Given String in Reverse Order ***** \n");
for(i = len - 1; i >= 0; i--)
{
if(str[i] == ' ')
{
str[i] = '\0';
printf("%s ", &(str[i]) + 1);
}
}
printf("%s", str);
return 0;
}
Please Enter any String : Welcome To Tutorial Gateway
***** Given String in Reverse Order *****
Gateway Tutorial To Welcome
C Program to Reverse Order of Words in a String Example 3
This program is the same as the first example, but this time we are saving the reverse order words in a separate string.
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], revstr[100];
int i, j, index, len, startIndex, endIndex;
printf("\n Please Enter any String : ");
gets(str);
len = strlen(str);
index = 0;
endIndex = len - 1;
printf("\n ***** Given String in Reverse Order ***** \n");
for(i = len - 1; i > 0; i--)
{
if(str[i] == ' ')
{
startIndex = i + 1;
for(j = startIndex; j <= endIndex; j++)
{
revstr[index] = str[j];
index++;
}
revstr[index++] = ' ';
endIndex = i - 1;
}
}
for(i = 0; i <= endIndex; i++)
{
revstr[index] = str[i];
index++;
}
revstr[index] = '\0';
printf("\n Given String in Reverse Order = %s", revstr);
return 0;
}
Please Enter any String : learn c programming with examples at tutorial gateway
***** Given String in Reverse Order *****
Given String in Reverse Order = gateway tutorial at examples with programming c learn