#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
int maxlen, len, i;
char * str;
// 문자열의 최대 길이 입력받기
printf("문자열의 최대길이 입력: ");
scanf("%d", &maxlen);
getchar();
// 입력받은 길이만큼 메모리 할당 (+1은 null문자를 위한 공간)
str = (char*)malloc(sizeof(char) * (maxlen + 1));
// 문자열 입력받기
printf("문자열 입력: ");
fgets(str, maxlen + 1, stdin);
// 입력받은 문자열의 마지막 개행 문자 제거
str[strlen(str) - 1] = 0;
len = strlen(str);
// 문자열을 뒤에서부터 탐색하며 단어를 역순으로 출력
for(i = len; i > 0; i--) {
if(str[i] == ' ') {
printf("%s ", &str[i + 1]);
str[i] = 0; // 공백 문자를 null 문자로 대체하여 단어를 분리
}
}
// 마지막 단어 출력
printf("%s ", &str[0]);
// 할당한 메모리 해제
free(str);
return 0;
}
여기서... for문 단어 역순이 왜 저코드로 기능하는지 이해를 못하겠습니다..ㅠㅠ 그리고 ' ' 이 연산자? 무슨뜻인지...
직접 배열에 문자 넣고 포문 시뮬해보면 이해될텐데
집에가보면 바로해보겠늡니다 ㅠ
공백이였네요