c 언어로 풀고 있는데요, OOOOOOOOOO 이 케이스를 단독으로 돌리면 55가 잘 뜨는데 OOOOXOOOXXOXOOOXXX 뭐 이런식으로 문자열 사이즈가 10보다 큰 거를 OOOOOOOOOO 케이스보다 앞에 돌리면 프린트를 잘못 합니다.
예로
3 OXOXOXOXOXOXOX OOOOOOOOOO OOOOXOOOOXOOOOX
input 값이 위와 같을 때 output값은 7 56 30 으로 나오거든요.
추측하기로는 OOOOOOOOOO 케이스를 입력할 때 앞선 케이스인 OXOXOXOXOXOXOX가 사용했던 array의 흔적 때문인 것 같은데요...흠....
실제로 OOOOOOOOOO 가 test일 때 어디서 count가 잘못됐는지 추적하니깐 test[12]에서 잘못 됐더라구요. 그런데 문제는 test를 프린트하면 OOOOOOOOOO이 된다는 겁니다. 아마 test[10]에 '\0'이 입력되면서 거기까지만 출력되는 것 같은데요.
그렇게 되면 궁금한 건 문자열의 초기화입니다. 구글링을 해보니 문자열을 초기화하기 위해서는 test[0]='\0'을 입력하라고 하는데요, 사실 상 그건 초기화가 아니지 않나요? '\0' 뒤부터 다시 문자열이 시작되니까요
hyemin1826 4년 전
c 언어로 풀고 있는데요, OOOOOOOOOO 이 케이스를 단독으로 돌리면 55가 잘 뜨는데
OOOOXOOOXXOXOOOXXX 뭐 이런식으로 문자열 사이즈가 10보다 큰 거를 OOOOOOOOOO 케이스보다 앞에 돌리면 프린트를 잘못 합니다.
예로
3
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
input 값이 위와 같을 때 output값은
7
56
30
으로 나오거든요.
추측하기로는 OOOOOOOOOO 케이스를 입력할 때 앞선 케이스인 OXOXOXOXOXOXOX가 사용했던 array의 흔적 때문인 것 같은데요...흠....
실제로 OOOOOOOOOO 가 test일 때 어디서 count가 잘못됐는지 추적하니깐
test[12]에서 잘못 됐더라구요.
그런데 문제는 test를 프린트하면 OOOOOOOOOO이 된다는 겁니다. 아마 test[10]에 '\0'이 입력되면서 거기까지만 출력되는 것 같은데요.
그렇게 되면 궁금한 건 문자열의 초기화입니다.
구글링을 해보니 문자열을 초기화하기 위해서는 test[0]='\0'을 입력하라고 하는데요, 사실 상 그건 초기화가 아니지 않나요? '\0' 뒤부터 다시 문자열이 시작되니까요
왜 그럴까요?
띠용..