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