Question: Write a program in C to reverse a string using recursion
Input: Hello Everyone
Output: enoyrevE olleH
We discussed the method to reverse the string using recursion in this post. But a recursive method is generally not preferred as it takes a longer execution time.
This is also a classic interview question and we need to do it in place. We also need to be careful for the null character.
#include<stdio.h> void reverse(char *str) { // Mark a pointer to the start of string char * end = str; char temp; if(str) { // Find the end of the string while(*end) ++end; } // end now points at the last character of the string // but the last character is null, so we need to step back one character end--; // Swap characters from start of the string with the end of the string // until the pointers meet in the middle while(str < end) { temp = *str; *str++ = *end; *end-- = temp; } } //driver program int main(void) { char str[100] = "Hello Everyone"; reverse(str); printf("%s",str); return 0; }