[.c/C언어] 사용자에게 영단어를 입력받아 역순으로 출력하는 코드C언어_자료구조/.c2021. 9. 15. 18:00
목차
main.c
#include <stdio.h>
#include <stdlib.h>
int main() {
int len;
char* pword;
printf("영단어 길이 입력 : ");
scanf("%d", &len);
pword = (char*)malloc(sizeof(char)*(len+1));
printf("영단어 입력 : ");
scanf("%s", pword);
printf("영단어 출력 : ");
for (int i = len - 1; i >= 0; i--)
{
printf("%c", pword[i]);
}
printf("\n");
free(pword);
return 0;
}
정수형 변수 len으로 영단어의 길이를 입력 받으면 그 길이보다 1만큼 더 큰 공간을 할당하여 pword를 char*형으로 강제 형변환을 시켜준다. null 문자까지 포함해서 딱 맞는 크기의 문자열을 pword에 입력받고 for문으로 len이 0이 될 때까지 하나씩 감소시키며 문자열 pword의 각각 인덱스에 해당하는 문자의 출력을 반복한다. 출력이 끝나면 pword의 공간을 해제한다.
<실행예시>
그러나 문제점이 몇 가지 있었다. 입력할 영단어의 길이가 실제 영단어 길이와 맞지 않으면 오류가 발생한다는 점과 띄어쓰기가 포함된 문장은 엉뚱한 값이 출력된다는 점이다.
<길이와 맞지 않았을 때>
<띄어쓰기가 포함되었을 때>
728x90
반응형
LIST
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!