2743번 - 단어 길이 재기
replit에서 돌려보면 잘 나오는데... 무슨 에러인지 모르겠어요
str는 초기화되지 않은 포인터이므로 그대로 사용해서는 안 됩니다. 공간을 할당해주어야 합니다.
char *str을
char str[101]로 바꿔서 문자열을 받으려고했는데
이건 왜 오답이죠?ㅠㅠ
결과는 나오는데 틀렸다고 하니 도저히 모르겠네요ㅠㅠ
i<str[i]는 이상한 표현입니다. i번째 문자의 아스키 코드 값과 i를 비교하는데 str[i]가 문자열의 길이를 나타내지 않기 때문에 별다른 의미가 없습니다. 문자열의 끝을 검사하려면 str[i] != '\0', str[i] != 0, i < strlen(str), 또는 그냥 str[i]와 같은 표현이 맞습니다.
예제는 왜 나오냐면 입력으로 주어지는 대문자나 소문자의 가장 작은 아스키 코드 값이 65이기 때문에 길이가 65를 넘는 입력을 테스트하지 않는 이상 널 문자가 나올 때까지는 루프가 항상 참이기 때문입니다.
와 정말 감사합니다!!!
댓글을 작성하려면 로그인해야 합니다.
swo98 2년 전
replit에서 돌려보면 잘 나오는데... 무슨 에러인지 모르겠어요