#include <stdio.h> void reverse_string(char *str) { // Your logic here char *b, *e, c; b=str; e=str; while (*e != '\0') { e++; // find the end } e--; // back off one from the terminator while (b < e) { c= *b; *b= *e; *e = c; b++; e--; } } int main() { char str[101]; fgets(str, sizeof(str), stdin); // Remove newline int i = 0; while (str[i] != '\0') { if (str[i] == '\n') { str[i] = '\0'; break; } i++; } reverse_string(str); printf("%s", str); return 0; }
Find th eend of the string. use a dummy char to hold a value while swapping the characters at the head and tail. move head up, move tail down.
Test Cases
Test Results
Input
firmware
Expected Output
erawmrif