swo98   11달 전

replit에서 돌려보면 잘 나오는데... 무슨 에러인지 모르겠어요 

djm03178   11달 전

str는 초기화되지 않은 포인터이므로 그대로 사용해서는 안 됩니다. 공간을 할당해주어야 합니다.

swo98   11달 전

char *str을

char str[101]로 바꿔서 문자열을 받으려고했는데

이건 왜 오답이죠?ㅠㅠ

결과는 나오는데 틀렸다고 하니 도저히 모르겠네요ㅠㅠ

djm03178   11달 전

i<str[i]는 이상한 표현입니다. i번째 문자의 아스키 코드 값과 i를 비교하는데 str[i]가 문자열의 길이를 나타내지 않기 때문에 별다른 의미가 없습니다. 문자열의 끝을 검사하려면 str[i] != '\0', str[i] != 0, i < strlen(str), 또는 그냥 str[i]와 같은 표현이 맞습니다.

djm03178   11달 전

예제는 왜 나오냐면 입력으로 주어지는 대문자나 소문자의 가장 작은 아스키 코드 값이 65이기 때문에 길이가 65를 넘는 입력을 테스트하지 않는 이상 널 문자가 나올 때까지는 루프가 항상 참이기 때문입니다.

swo98   11달 전

와 정말 감사합니다!!!

댓글을 작성하려면 로그인해야 합니다.