str[i]의 크기가 51이므로 fgets 함수는 개행 문자를 포함해서 최대 50문자까지만 한 줄에 입력받을 수 있습니다. 따라서 50개의 문자 + 개행 문자가 한 줄에 입력된다면 마지막 개행 문자는 잘리고 버퍼에 그대로 남게 됩니다.
예를 들어서 sizeof(str[i])가 4이었다고 가정하고 abc[엔터]를 입력했다고 하면, str[i]에는 abc가 들어가고 개행 문자는 버퍼에 남겨집니다. 여기서 str[i](strlen(str[i] - 1) = '\0'을 하면 str[i]는 ab가 되어버립니다. str[i + 1]은 시작하자마자 버퍼에 남겨진 개행 문자를 읽고 그 위치를 다시 '\0'으로 덮어쓰니 완전히 빈 문자열이 됩니다.
kimdh2577 6년 전
i번째와 i+1번째 문자열을 비교해서 ?가 들어가야할 자리들을 찾아 check배열에 저장한후 출력했습니다.
채점 시작하자마자 틀렸다고 뜨는데 왜 그럴까요?