qudwo09   6년 전

분명 다 예외처리 했고 테스트 케이스도 잘되고

시작하자마자 엔터나 공백 하고 시작이나

연속 공백이나 마지막 공백 다 되는데 왜틀린지 모르겠어요 ㅠㅠ

gallopsys   6년 전

마지막 공백을 처리하려면 a[strlen(a) - 1] == ' '이 되어야 하지 않을까요? 'a         '의 경우 1이 출력되어야 하는데 2가 출력되네요...

그리고 char 배열이 길이가 너무 타이트하니 조금 늘려줘야 할 거 같네요...

qudwo09   6년 전

문자열로 저장된것의 마지막이 공백인거라 그런건가요?

바꾸니까 바로 해결됬습니다!! 감사합니다~

gallopsys   6년 전

반복문에서 첫 번째 글자와 NULL('\0')을 제외한 마지막 문자를 빼곤 전부 공백이라던지, Line Feed는 잘 처리하고 있는데요.

첫 번째 문자와 마지막 문자에 대한 공백이나 LF 문자는 고려하지 않고 있기 때문에 이를 if문으로 처리하신 거라고 판단됩니다.
첫 번째 문자는 0번째 index에서 시작하는 게 맞는데, 마지막 index를 고려하실 때 잘못 고려하셨어요.. strlen(a)라고 하면 말 그대로 문자열의 길이가 나오게 되므로, a가 만약 "abcdefghij"(큰 따옴표 제외)이라면 strlen(a) == 10이겠죠. 그러면 a[strlen(a)]라고 했을 때 a[9]를 참조해야할 것을 a[10]으로 참조해버리게 되고 문자열 마지막에 있는 문자는 NULL문자가 확정이기 때문에 마지막 공백을 제대로 처리하지 못하게 되는 것입니다..

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