40, 56번째 줄에서 temp라는 "char형 배열"을 가지고 string 객체를 만들고 있는데, 이 "char형 배열"은 "문자열"이 아닙니다. "문자열"은 반드시 널 문자로 끝나야 하는데 이 배열에는 널 문자가 없습니다. 그래서 string 역시 이 배열을 가지고 string 객체를 생성하기 위해서 널 문자를 찾지만, 널 문자를 넣은 적이 없기 때문에 배열의 크기를 넘어서 계속 탐색하게 되고, 이때 널 문자(0)가 우연히도 바로 뒤에 나타나면 정답을 출력하겠지만 그렇지 않으면 오답이 되거나 런타임 에러도 날 수 있습니다.
char temp[2]; -> char temp[3] = {0};
char temp[3]; -> char temp[4] = {0};
로 바꾸면 통과됩니다.
geteking 5년 전
string의 각각 자리에 체크표시를 할 수 있도록 클래스를 하나 만들어서, 먼저 크로아티아 문자의 개수를 구하고, 크로아티아 문자가 아닌 개수를 구하여 더한 값을 출력하였습니다.
문제에서의 예시와, 공식홈페이지의 테스트케이스를 모두 넣어보고, 이 문제와 관련된 질문의 모든 반례들과 직접 만든 예시들을 넣어 보았고 모두 정상출력 되지만, 채점은 틀렸다고 나옵니다.
혹시 어떤 테스트케이스에서 실패하는 것인지 보이시는 분들은 도움 부탁드립니다.