Tutorial Gateway

  • C
  • C#
  • Java
  • Python
  • SQL
  • MySQL
  • Js
  • BI Tools
    • Informatica
    • Talend
    • Tableau
    • Power BI
    • SSIS
    • SSRS
    • SSAS
    • MDX
    • R Tutorial
    • Alteryx
    • QlikView
  • More
    • C Programs
    • C++ Programs
    • Go Programs
    • Python Programs
    • Java Programs

C Program to Reverse Order of Words in a String

by suresh

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.

/* C Program to Reverse Order of Words in 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;
}
C Program to Reverse Order of Words in a String 1

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 c 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.

/* C Program to Reverse Order of Words in a String */
 
#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;
}
C Program to Reverse Order of Words in a String 2

C Program to Reverse Order of Words in a String Example 3

This program to reverse words in a string in c is the same as the first example, but this time we are saving the reverse order words in a separate string.

/* C Program to Reverse Order of Words in a 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;
}
C Program to Reverse Order of Words in a String 3

Placed Under: C Programs

  • C Hello World
  • C Add Two numbers
  • C Armstrong Number Program
  • C Convert Celsius to Fahrenheit
  • C Convert Decimal to Binary
  • C Convert Decimal to Octal
  • C Convert CM to Meter and KM
  • C Convert KM to M, CM & MM
  • C Convert Fahrenheit to Celsius
  • C Compound Interest Program
  • C Count Digits in a Number
  • C Count Notes in an Amount
  • C Cube of a Number
  • C Electricity Bill Program
  • C Factors of a Number Program
  • C Factorial of a Number Program
  • C GCD of Two Numbers
  • C Generic Root of a Number
  • C Gross Salary of an Employee
  • C Largest of Two Numbers
  • C Largest of Three numbers
  • C Last Digit Of a Number
  • C LCM of Two Numbers
  • C Leap Year program
  • C Multiplication Table program
  • C Natural Numbers from 1 to N
  • C Natural Numbers in reverse
  • C NCR Factorial of a Number
  • C Number is Divisible by 5 and 11
  • C Palindrome Program
  • C Palindrome String program
  • C Perfect Number Program
  • C Profit or Loss Program
  • C Print 1 to 100
  • C Print Prime Numbers 1 to 100
  • C Prime Number program
  • C Prime Factors of a Number
  • C Prime, Armstrong or Perfect
  • C Positive or Negative program
  • C Print Odd Numbers 1 to N
  • C Print Even Numbers 1 to N
  • C Print Integer, Char & Float
  • C Power of a Number program
  • C Product of Digits in a Number
  • C Roots of a Quadratic Equation
  • C Reverse a Number
  • C Simple Calculator Program
  • C Simple Interest
  • C Square of a Number
  • C Square Root of a Number
  • C Standard Deviation program
  • C Strong Number Program
  • C Student Grade program
  • C Sum of Odd Numbers program
  • C Sum of Even Nums program
  • C Sum of Even and Odd Nums
  • C Swap First & Last digit of Num
  • C Sum of First & Last digit Num
  • C Sum of Digits of a Number
  • C Sum of N Numbers Program
  • C Sum and Average of n Number
  • C Swap 2 Numbers
  • C Total, Avg & % of Five Subjects
  • C Quick Sort
  • C Selection Sort
  • C Insertion Sort
  • C Bubble Sort
  • C Fibonacci Series Program
  • C Nth Fibonacci number
  • C Sum of AP Series
  • C Sum of GP Series
  • C Sum of series 1³+2³+3³+….+n³
  • C Sum of series 1²+2²+3²+….+n²
  • C ASCII value of String chars
  • C Print Characters in a String
  • C Compare Two Strings
  • C Concatenate Two Strings
  • C Copy String
  • C String length program
  • C Convert String to Lowercase
  • C First Occurrence of string char
  • C First Occur of String Word
  • C Count Occur of string Char
  • C Count Alphabets, Digits & Special Chars
  • C Count Vowels & Consonants
  • C string remove all Occ of char
  • C remove 1st Occ of char in string
  • C remove last Occ char in string
  • C replace All Occ of char in string
  • C Replace last Occ of String Char
  • C Replace 1st occ char in string
  • C Reverse words Order in string
  • C Reverse a String
  • C Toggle Case of all char in string
  • C Array Arithmetic Operations
  • C Matrix Arithmetic Operations
  • C Count Frequency of array item
  • C Count Duplicate Array items
  • C Count +ve & -Ve Array items
  • C Count Even & Odd Array items
  • C Copy an Array to another
  • C Delete Duplicate Array items
  • C Delete an Element in an Array
  • C insert an Element in an Array
  • C 2nd largest Number in an Array
  • C Find Largest Array Number
  • C Find Smallest Array Number
  • C Largest & Smallest Array item
  • C Merge Two Arrays
  • C Print Unique Array Elements
  • C Print Arrayy Elements
  • C Print Negative Array Numbers
  • C Print Positive Array Numbers
  • C Put +ve & -Ve in 2 Arrays
  • C Put Even & Odd in 2 Arrays
  • C Program to Reverse an Array
  • C Search an Element in an Array
  • C Sum of array even, odd nums
  • C Sort Array in Ascending Order
  • C Sort Array in Descending
  • C Swap 2 Arrays without Temp
  • C Sum of all Array Elements
  • C Sum of each Matrix column
  • C sum of each row in a Matrix
  • C Sum of Matrix row & column
  • C Add Two Matrices
  • C Sparse Matrix
  • C Symmetric Matrix
  • C Identity Matrix
  • C Interchange Matrix Diagonals
  • C Check two Matrices Equal
  • C Lower Triangle of a Matrix
  • C Upper Triangle of a Matrix
  • C Sum of Lower Triangle Matrix
  • C Sum of Upper Triangle Matrix
  • C Subtract Two Matrices
  • C Transpose of a Matrix program
  • C Cuboid Volume & Surface Area
  • C Cone Volume & Surface Area
  • C Cube Volume & Surface Area
  • C Volume & Surface of Cylinder
  • C Volume & Surface of Sphere

Copyright © 2021 · All Rights Reserved by Suresh

About Us | Contact Us | Privacy Policy