All submissions

Reverse a String In-Place

Code

#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;
}

Solving Approach

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.

 

 

Loading...

Input

firmware

Expected Output

erawmrif