문제를 간단히 설명하면, 문자열이 주어졌을 때, 이 문자열에서 단어의 개수를 구하는 문제입니다.
문제를 풀면 아래 코드가 나옵니다.
#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언어' 카테고리의 다른 글
| 백준 1152 C언어 문제 풀이 - 단어의 개수 (0) | 2024.01.28 |
|---|---|
| 백준 1157 C언어 문제 풀이 - 단어 공부 (0) | 2024.01.28 |
| 백준 1018 C언어 문제 풀이 - 체스판 다시 칠하기 (0) | 2024.01.28 |
| 백준 1008 C언어 문제 풀이 - A/B (0) | 2024.01.28 |
| 백준 1001 C언어 문제 풀이 - A-B (1) | 2024.01.26 |