단, 포인터를 사용하는 reverse함수를 사용

1. 소스코드

#include <stdio.h>

void reverse(char *p, char *q) {
    // abcd 문자열의 개수
    int length = 4;

    for(int i=0; i<4; ++i) {
        // 역순의 주소값을 이용해 q에 원소 채워주기
        q[i] = *(p + length - i - 1);
    }
}

int main(void) {
    char s1[100], s2[100], *p, *q;
    int i;

    printf("문자열 입력: ");
    scanf("%s", s1);

    // 입력 문자열이 저장된 배열s1에 포인터 p 연결
    p = s1;
    // 역순 문자열을 저장할 배열s2에 포인터 q 연결
    q = s2;

    reverse(p, q);
    printf("역순 문자열 : %s\\n", s2);

    return 0;
}

2. 결과 출력

Untitled

3. 느낀점(고찰)

제가 보통 사용하는 언어들이 전부 C언어와는 거리감이 좀 있던지라, 포인터가 뭔지는 알고있지만, 생각보다 막상 오랜만에 쓰려니까 뭐더라하는게 좀 심했습니다. 물론 구글링 약간만 하면 “아 맞다”하면서 바로 쓰고는 있는데, 웬만하면 자료구조 시작하기 전에 문법들을 구글링 없이 사용할 수 있도록 미리 복습 공부를 틈 내서 해야할 것 같다고 느꼈습니다.