dhedaa   4년 전

공백
공백 단어
공백 단어 공백
단어
단어 공백

위의 경우를 모두 고려해서 다양한 TS를 넣어봤는데도 틀렸다고 떠서용
제가 놓친 경우가 있을까요?

sgchoi5   4년 전

입력이 1,000,000 을 넘지 않는다라고 되어 있으니... 1,000,000 이 입력으로 올 수 있고, 이 경우

null character 를 위한 공간을 위해서 char s[1000001]; 로 할당해주셔야 합니다.


getline() 함수의 reference 를 읽어보면 아래 두 줄에 언급된 내용이 있습니다.

null character ('\0') is automatically appended to the written sequence if n is greater than zero, even if an empty string is extracted.

Maximum number of characters to write to s (including the terminating null character).


sizeof(s) 로 전달되는 값이 1,000,000 이기 때문에 null character 자리를 빼고 999,999 개의 문자만 입력으로 받을 수가 있습니다.


dhedaa   4년 전

아 해결된걸 안써놨군요 ㅠㅠ


반복문안에 


이 코드를

if (s[i] == ' ')
{
check = false;
}
if (s[i] != ' '&& check == false)
{
if (s[i] == 0) break;        //NULL문자처리
check = true;
cnt++; 
}


이렇게

if (s[i] == 0) break;
else if (s[i] == ' ')
{
check = false;
}
else if (s[i] != ' '&& check == false)
{
check = true;
cnt++;
}

바꾸니까 정답처리가 됐어용~



sgchoi5   4년 전

마지막 한 글자는 단어의 개수에는 영향을 안 줄수도 있을 듯 하네요. : )

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