#include <stdio.h> void reverse_string(char *str) { // Your logic here int str_len =0; char *pointer = str; while(*pointer!='\0') { pointer++; str_len++; } // printf("str_len=%d\n",str_len); for (int i=0; i<str_len/2; i++) { char a = *(str+i); *(str+i) = *(str+((str_len-1)-i)); *(str+((str_len-1)-i)) = a; // printf("*(str+i)=%c *(str+((str_len-1)-i))=%c\n",*(str+i),*(str+((str_len-1)-i))); } } 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; }
Test Cases
Test Results
Input
firmware
Expected Output
erawmrif