요컨대 문제는 주어진 문자열에서 문자열의 단어 수를 찾는 것입니다.
문제를 풀면 아래와 같은 코드가 나옵니다.
#include <stdio.h>
int main() {
char str(1000000);
int i, cnt = 0;
fgets(str, 1000000, stdin);
// 단어의 개수 계산
for (i = 0; str(i) != '\0'; i++) {
if (str(i) != ' ' && str(i) != '\n') {
if (i == 0 || str(i-1) == ' ' || str(i-1) == '\n') {
cnt++;
}
}
}
printf("%d\n", cnt);
return 0;
}
위의 코드에서 str은 입력 문자열을 나타내는 문자열입니다. fgets 함수로 문자열을 입력한 후 for 문으로 단어 수를 계산합니다. 문자열의 i번째 문자가 공백이나 개행 문자가 아니고 선행 문자가 공백이나 개행 문자이면 cnt는 새 단어의 시작이므로 1씩 증가합니다. 마지막으로 cnt를 인쇄합니다.
문자열의 최대 길이는 1,000,000이므로 입력을 받으려면 ‘fgets 함수를 사용해야 합니다. 예를 들어 gets 함수를 사용하지 마십시오.
![[모던 C++] [모던 C++]](https://high.pageof.kr/wp-content/plugins/contextual-related-posts/default.png)