输入一行字符,用函数编程统计其中有多少个单词,假设单词之间以空格分开(请尝试分别使用字符数组和字符指针实现)。
时间: 2023-12-26 15:11:44 浏览: 52
下面分别是使用字符数组和字符指针实现的代码:
使用字符数组实现:
```c
#include <stdio.h>
#include <string.h>
int countWords(char str[]) {
int len = strlen(str);
int count = 0;
int i;
for(i = 0; i < len; i++) {
// 判断当前字符是否为空格
if(str[i] == ' ') {
count++;
}
}
// 最后一个单词后面没有空格,需要再加1
count++;
return count;
}
int main() {
char str[100];
printf("请输入一行字符:");
fgets(str, 100, stdin);
int count = countWords(str);
printf("单词数目为:%d\n", count);
return 0;
}
```
使用字符指针实现:
```c
#include <stdio.h>
#include <string.h>
int countWords(char *str) {
int len = strlen(str);
int count = 0;
int i;
for(i = 0; i < len; i++) {
// 判断当前字符是否为空格
if(*(str + i) == ' ') {
count++;
}
}
// 最后一个单词后面没有空格,需要再加1
count++;
return count;
}
int main() {
char str[100];
printf("请输入一行字符:");
fgets(str, 100, stdin);
int count = countWords(str);
printf("单词数目为:%d\n", count);
return 0;
}
```
两种实现方式的核心都是通过遍历字符串中的每个字符,判断是否为空格,并计数。最后需要特别注意最后一个单词后面没有空格的情况,需要再加1,才能得到正确的结果。
阅读全文