#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.
Input
firmware
Expected Output
erawmrif