so4644009   5년 전

입력을 받았는데 엔터가 포함되어서 테스트 케이스보다 1개 적게 입력 받아지고, 출력도 마지막에서 2번째 단어가 이상하게 출력됩니다. 분명 순서를 맞게 바꾸도록 코드를 짠 것 같은데 띄어쓰기 있는 부분으로 마지막에서 두 번째 알파벳이 마지막 띄어쓰기 부분으로 출력됩니다. (밑에서처럼, I ma yppah yadot가 되어야 하는데 이렇게 출력되네요) 비주얼스튜디오에서 계속 돌려보는데 계속 이렇게 나와서 어떻게 해야할 지 모르겠습니다ㅠㅠ

e789ff39-286e-4db9-b559-baa5360e699a

jaehoo1   5년 전

엔터키를 포함해서 입력받았다면 6번줄 밑에

getchar()를 포함해서 입력받은 엔터를 버릴 수 있습니다.

현재 코드는 띄어쓰기를 발견하거나, 마지막 인덱스일 경우

자리를 바꾼다고 되어있는데, 마지막 인덱스만 제외하고 앞부분을 바꿉니다.

ex : I am happy today → I ma yppahadot


왜 그럴지는 본인의 코드를 보고 한번 더 생각해 보시고, 도움을 드리자면,

1) : 문자열 s뒤에 공백 하나를 추가

       ex : I*am*happy*today → I*am*happy*today*   (이해를 돕기 위해 공백을 * 로 나타내었습니다)

2) : 코드를 다시 짜기(마지막 인덱스일 경우도 제대로 동작하게)

이 두 가지 방법 중 하나를 쓰시면 될 것 같습니다

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