C Program to Check if a String is a Palindrome Using Recursion

Introduction

A palindrome is a string that reads the same forward and backward. For example, "radar" and "level" are palindromes. This guide will show you how to write a C program to check if a string is a palindrome using recursion.

Example:

  • Input: "madam"
  • Output: "The string is a palindrome."

Problem Statement

Create a C program that:

  • Takes a string as input from the user.
  • Uses a recursive function to check if the string is a palindrome.
  • Displays whether the string is a palindrome or not.

Solution Steps

  1. Include the Standard Input-Output and String Libraries: Use #include <stdio.h> for standard input-output functions and #include <string.h> for string manipulation.
  2. Write the Recursive Function: Define a recursive function that checks if the string is a palindrome by comparing characters from both ends.
  3. Write the Main Function: Define the main function to take user input, call the recursive function, and display the result.
  4. Input the String: Use gets or scanf to take input from the user for the string.
  5. Call the Recursive Function: Pass the string and its indices to the recursive function to check if it is a palindrome.
  6. Display the Result: Use printf to display whether the string is a palindrome.

C Program to Check if a String is a Palindrome Using Recursion

#include <stdio.h>
#include <string.h>

// Step 2: Define the recursive function to check if the string is a palindrome
int isPalindrome(char str[], int start, int end) {
    if (start >= end) {
        return 1;  // Base case: If start index is greater than or equal to end index, it's a palindrome
    }
    
    if (str[start] != str[end]) {
        return 0;  // If characters at start and end don't match, it's not a palindrome
    }
    
    // Recursively check the remaining substring
    return isPalindrome(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 check if the string is a palindrome
    int result = isPalindrome(str, 0, strlen(str) - 1);

    // Step 6: Display the result
    if (result) {
        printf("The string is a palindrome.\n");
    } else {
        printf("The string is not a palindrome.\n");
    }

    return 0;  // Return 0 to indicate successful execution
}

Explanation

Step 2: Define the Recursive Function

  • The isPalindrome function takes three parameters:
    • str[]: The string to be checked.
    • 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 the end index, the recursion stops, and the function returns 1, indicating that the string is a palindrome.
  • Recursive Case:
    • If the characters at the start and end indices do not match, the function returns 0, indicating that the string is not a palindrome.
    • Otherwise, the function calls itself recursively with the start index incremented by 1 and the end index decremented by 1.

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 isPalindrome function with the string, the starting index 0, and the ending index strlen(str) - 1.

Step 6: Display the Result

  • The program checks the value of result:
    • If result is 1, the string is a palindrome.
    • If result is 0, the string is not a palindrome.

Return 0

  • The return 0; statement indicates that the program executed successfully.

Output Example

Example 1:

Enter a string: madam
The string is a palindrome.

Example 2:

Enter a string: hello
The string is not a palindrome.

Conclusion

This C program demonstrates how to check if a string is a palindrome 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.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top