输入一行字符,用函数编程统计其中有多少个单词,假设单词之间以空格分开(请尝试分别使用字符数组和字符指针实现)。
时间: 2023-12-26 15:12:11 浏览: 146
使用字符数组实现:
```c
#include <stdio.h>
#include <string.h>
int word_count(char str[]) {
int count = 0;
int len = strlen(str);
int i;
for (i = 0; i < len; i++) {
if (str[i] != ' ' && (i == 0 || str[i - 1] == ' ')) {
count++;
}
}
return count;
}
int main() {
char str[100];
printf("请输入一行字符:\n");
fgets(str, 100, stdin);
int count = word_count(str);
printf("单词个数为:%d\n", count);
return 0;
}
```
使用字符指针实现:
```c
#include <stdio.h>
#include <string.h>
int word_count(char *str) {
int count = 0;
int len = strlen(str);
int i;
for (i = 0; i < len; i++) {
if (*(str + i) != ' ' && (i == 0 || *(str + i - 1) == ' ')) {
count++;
}
}
return count;
}
int main() {
char str[100];
printf("请输入一行字符:\n");
fgets(str, 100, stdin);
int count = word_count(str);
printf("单词个数为:%d\n", count);
return 0;
}
```
两种实现方式的核心思路是:遍历字符串中的每个字符,如果该字符不是空格且前一个字符是空格或者当前字符是第一个字符,则认为遇到了一个新单词。最后统计单词个数即可。
阅读全文