fkdleld   3년 전

이대로 입력해서 repl.it에서는 그대로 나오는데 틀렸다고 나오네요 혹시 어디서 틀렸는지 알 수 있을까요

dldyddlwl   3년 전

맨 밑에 출력부분이 문제였는데요. 저는 C를 생각해서 char배열의 0 (  \0 널 터미네이터 ) 을 기준으로 끊어줄 거라고 생각했는데, 자바는 그렇지 않더라고요.

즉, 쉽게 말하면, 자바가 print문을 써서 char배열을 출력할 때는 자신의 크기만큼 모두 출력해준다는 것입니다. 의도한 것은 필요한 문자들만 나오는 것인데, 

비어있는 값들까지 출력되면서 생긴 문제입니다. ( 값이 0이기 때문에, 출력시에 보이지는 않습니다. )

이 같은 주장을 확실하게 하기 위해서, char배열을 더 키워서 char[t][180] 으로 출력을 하니 출력초과가 뜨더군요! 

만약에, println(p[i])가 필요한 문자까지만 출력하고 빈 부분을 출력하지 않는다면, 절대 출력초과 에러가 뜰 수 가 없겠죠. 따라서, 이 부분을 고쳐서 아래와 같이 하니 정답이 나왔습니다.

fkdleld   3년 전

감사합니다! 해결되었습니다.

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