C 언어 예제/문자열 뒤집기 프로그램

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
// string mirror
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int strlen = 1024;
    char *string = (char *)calloc(strlen, sizeof(char));
    gets(string);
    char *str = string + strlen - 1;
    while (str != (string - 1))
    {
        if (*str != 0)
            printf("%c", *str);
        str--;
    }
    free(string);
}

동적 메모리를 활용한 문자열 뒤집어 출력하는 프로그램이다. 문자열의 끝을 수동으로 지정하지 않게 calloc()으로 전부 NUL로 초기화하였고 while문을 돌면서 *str이 NUL, 0이면 출력하지 않는 간단한 예제이다. while문의 조건문이 str != (string - 1) 이렇게 되어있는데 이렇게 해둔 이유는 그냥 string이라고 해놓으면 string에 해당하는 위치의 문자열(*string)이 출력되지 않고 while문이 종료되기 때문에 그 위치의 문자열까지(*string) 출력하고 (*(string - 1))에서 while문을 종료하도록 보정해준 것이다.

input << 123456789

result! >> 987654321