Introduction
Reversing a string means rearranging the characters of the string such that the first character becomes the last, the second character becomes the second-to-last, and so on. This guide will show you how to write a C program to reverse a string using recursion.
Example:
- Input: "hello"
- Output: "olleh"
Problem Statement
Create a C program that:
- Takes a string as input from the user.
- Uses a recursive function to reverse the string.
- Displays the reversed string.
Solution Steps
- Include the Standard Input-Output and String Libraries: Use
#include <stdio.h>for standard input-output functions and#include <string.h>for string manipulation. - Write the Recursive Function: Define a recursive function that reverses the string by swapping characters.
- Write the Main Function: Define the
mainfunction to take user input, call the recursive function, and display the reversed string. - Input the String: Use
scanforgetsto take input from the user for the string. - Call the Recursive Function: Pass the string and its indices to the recursive function to reverse it.
- Display the Reversed String: Use
printfto display the reversed string.
C Program to Reverse a String Using Recursion
#include <stdio.h>
#include <string.h>
// Step 2: Define the recursive function to reverse the string
void reverseString(char str[], int start, int end) {
if (start >= end) {
return; // Base case: When start index is greater than or equal to end index
}
// Swap the characters at start and end indices
char temp = str[start];
str[start] = str[end];
str[end] = temp;
// Recursively call the function with the next set of indices
reverseString(str, start + 1, end - 1);
}
int main() {
// Step 3: Declare a variable to hold the string
char str[100];
// Step 4: Prompt the user to enter the string
printf("Enter a string: ");
gets(str); // Using gets to read the string including spaces
// Step 5: Call the recursive function to reverse the string
reverseString(str, 0, strlen(str) - 1);
// Step 6: Display the reversed string
printf("Reversed string: %s\n", str);
return 0; // Return 0 to indicate successful execution
}
Explanation
Step 2: Define the Recursive Function
- The
reverseStringfunction takes three parameters:str[]: The string to be reversed.start: The starting index for the current recursion step.end: The ending index for the current recursion step.
- Base Case: If the
startindex is greater than or equal to theendindex, the recursion stops, as the string has been fully reversed. - Recursive Case:
- Swap the characters at the
startandendindices. - Call
reverseStringrecursively with thestartindex incremented by 1 and theendindex decremented by 1.
- Swap the characters at the
Step 3: Declare a Variable
- The variable
stris declared to store the input string.
Step 4: Input the String
- The program prompts the user to enter a string using
gets, which reads the entire line of input, including spaces.
Step 5: Call the Recursive Function
- The program calls the
reverseStringfunction with the string, the starting index0, and the ending indexstrlen(str) - 1.
Step 6: Display the Reversed String
- The program uses
printfto display the reversed string.
Return 0
- The
return 0;statement indicates that the program executed successfully.
Output Example
Example 1:
Enter a string: hello
Reversed string: olleh
Example 2:
Enter a string: C programming
Reversed string: gnimmargorp C
Conclusion
This C program demonstrates how to reverse a string using a recursive function. It covers basic concepts such as recursion, string manipulation, and user input, making it a useful example for beginners learning C programming.