#include <stdio.h> void swap(char* a, char* b){ char tmp = *a; *a = *b; *b = tmp; } int strlen(const char* s){ int len = 0; while(*s != '\0'){ len++; s = s + 1; } return len; } void reverse_string(char *str) { // Your logic here int len = strlen(str); char* rear = str + len - 1; for(int i = 0; i < len / 2; i++){ swap(str, rear); str = str + 1; rear = rear - 1; } } 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