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
main
function to take user input, call the recursive function, and display the reversed string. - Input the String: Use
scanf
orgets
to 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
printf
to 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
reverseString
function 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
start
index is greater than or equal to theend
index, the recursion stops, as the string has been fully reversed. - Recursive Case:
- Swap the characters at the
start
andend
indices. - Call
reverseString
recursively with thestart
index incremented by 1 and theend
index decremented by 1.
- Swap the characters at the
Step 3: Declare a Variable
- The variable
str
is 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
reverseString
function with the string, the starting index0
, and the ending indexstrlen(str) - 1
.
Step 6: Display the Reversed String
- The program uses
printf
to 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.