https://www.acmicpc.net/problem/1152
영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
<script>
#define _CRT_SEUCRE_NO_WARNING
#include <stdio.h>
#include <string.h>
int main(void) {
int i, count = 0;
char input[1000001];
scanf("%[^\n]", input);
if (strlen(input) == 1) {
if (input[0] == ' ') {
count -= 1;
// 문자열의 길이가 1이고 해당 값이 ' '(공백)일때 count를 1 줄여 단어의 수로 포함하지 않게 한다.
}
// 문자열의 길이가 1인 경우
}
for (i = 1; i < strlen(input) - 1; i++) {
if (input[i] == ' ') {
count++;
}
// input[0]과 input[마지막]은 제외하고 공백의 개수를 세아린다. (처음과 끝에 공백이 들어오는 것을 제외하기 위해)
}
printf("%d", count + 1);
//단어의 수는 공백의 수 보다 1 높다. 단어4개 => 공백3개 그래서 공백의 수인 count에서 1을 늘려준다.
return 0;
}
</script>