在一行中输入一个英文句子(不超过100个字符),输出这个句子中单词的个数,单词之间以空格分隔,除空格外都认为是单词(包括符号)c 语言指针实现
时间: 2024-03-24 19:40:49 浏览: 109
好的,我的回答如下:
```c
#include <stdio.h>
int count_words(char *str) {
int count = 0;
char *p = str;
while (*p != '\0') {
if (*p != ' ' && (*(p+1) == ' ' || *(p+1) == '\0')) {
count++;
}
p++;
}
return count;
}
int main() {
char sentence[101];
printf("请输入一个句子(不超过100个字符):\n");
scanf("%[^\n]", sentence);
int word_count = count_words(sentence);
printf("单词个数为:%d\n", word_count);
return 0;
}
```
这段代码中,`count_words` 函数接收一个字符串指针,返回其中单词的个数。具体实现如下:
1. 初始化计数器 `count` 和指向字符串的指针 `p`。
2. 循环遍历字符串,如果当前字符不是空格,并且下一个字符是空格或字符串结尾,则将计数器加一。
3. 指针 `p` 向后移动一位。
4. 返回计数器 `count`。
在 `main` 函数中,我们首先从标准输入中读入一个句子,然后调用 `count_words` 函数计算其中单词的个数并输出。
阅读全文