C Program to Check Palindrome String

🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.

▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube

▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube

1. Introduction

A palindrome is a word, phrase, number, or another sequence of characters that reads the same forward as backward (ignoring spaces, punctuation, and capitalization). The word "radar" and the phrase "A man, a plan, a canal, Panama!" are famous examples of palindromes. 

In this tutorial, we will guide you through a C program to determine if a given string is a palindrome without using library functions.

2. Program Overview

The program will:

1. Take a string input from the user.

2. Check if the string is a palindrome.

3. Display the result accordingly.

3. Code Program

#include <stdio.h>  // Include standard I/O library for input-output operations.

int main() {  // Begin main function.

    char str[100], temp[100];  // Define arrays to store the string and its copy.
    int start = 0, end, length = 0;  // Define start and end indices and length variable for the string.

    printf("Enter a string: ");  // Prompt user for input.
    scanf("%s", str);  // Store user input in 'str' array.

    // Find the length of the string.
    for (end = 0; str[end] != '\0'; end++) {
        length++;
    }

    end = length - 1;  // Set 'end' to the last character of the string.

    // Reverse the string into 'temp'.
    for (int i = 0; i < length; i++) {
        temp[i] = str[end];
        end--;
    }

    temp[length] = '\0';  // Append null character to the end of 'temp'.

    // Check if 'str' and 'temp' are the same.
    for (int i = 0; i < length; i++) {
        if (str[i] != temp[i]) {
            printf("The string is not a palindrome.\n");
            return 0;  // Exit the program if the strings are different.
        }
    }

    printf("The string is a palindrome.\n");  // Display the result.

    return 0;  // End the program.

}

Output:

Enter a string: radar
The string is a palindrome.

4. Step By Step Explanation

1. Header Inclusion: The standard input-output library #include <stdio.h> provides us with essential functions like printf and scanf.

2. Main Function: Every C program execution starts from the main() function.

3. Variable Declaration:

- str and temp are character arrays to store the original string and its reversed copy, respectively.

- start, end, and length are integer variables to keep track of positions and string length.

4. Collecting Input: We use printf to prompt the user for input and scanf to read the string into str.

5. Calculating String Length: A for loop calculates the string length, and the end variable points to the last character in the string.

6. Reversal Process:

- Another for loop is used to reverse the string from str into temp.

- The null character is then added at the end of temp to ensure it`s a valid string.

7. Palindrome Check:

- A loop compares each character of str with the corresponding character of temp.

- If theres a mismatch, the program prints that the string isnt a palindrome and exits.

- If the loop completes without finding a mismatch, the program concludes that the string is a palindrome.

8. Displaying Result: The result, whether the string is a palindrome or not, is displayed using printf.

This method, though not the most optimized, offers clarity and helps beginners grasp the fundamental logic behind palindrome checking.

My Top and Bestseller Udemy Courses. The sale is going on with a 70 - 80% discount. The discount coupon has been added to each course below:

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare