#include <stdio.h>
#include <ctype.h> // 用于 isspace 函数
int main() {
int in_word = 0; // 标记是否在单词中
int num = 0; // 统计单词的个数
char string[100]; // 存储输入的字符串
// 提示用户输入字符串
printf("请输入一个字符串: ");
fgets(string, sizeof(string), stdin);
// 遍历字符串中的每个字符
for (int i = 0; string[i] != '\0'; i++) {
if (isspace(string[i])) {
in_word = 0; // 遇到空格,标记为不在单词中
} else if (in_word == 0) {
in_word = 1; // 遇到非空格字符且之前不在单词中,标记为在单词中
num++; // 单词数量加1
}
}
// 输出单词数量
printf("单词数量: %d\n", num);
return 0;
}
int isspace(int c);
1.要检查的字符,以 int 形式传递。通常是一个 char 类型的值。
它接受一个 int 类型的参数 c ,这个参数通常是一个字符的 ASCII 码值(也可以直接传入字符,因为字符在参与运算时会自动转换为对应的 ASCII 码值)。
参数c:
2.返回值:如果 c 是空白字符,返回 非零值(通常是 1),如果 c 不是空白字符,返回 0。
char *fgets(char *str, int num, FILE *stream);
str:指向用于存储读取到的字符串的字符数组的指针。
num:指定要读取的最大字符数(包括字符串结束符'\0')。
stream:指向要从中读取数据的文件流指针。当从标准输入读取时,使用stdin。
2. 功能描述
fgets函数从指定的文件流stream中读取最多num - 1个字符到字符数组str中。它会在遇到换行符'\n' 、文件结束符或者读取了num - 1个字符后停止读取。读取完成后,它会在字符数组末尾自动添加一个字符串结束符'\0'。
3. 返回值
如果读取成功,fgets函数返回指向存储读取字符串的字符数组str的指针,即str本身。
如果遇到文件结束且没有读取到任何字符,函数返回NULL。
如果在读取过程中发生错误,函数同样返回NULL。
10-18
853
