#include<stdio.h>
void docensus()//plus升级版,可以显示所输入句子的单词(word)数量,以及字母(letter)、数字(digit)、空格(space)、其他符号(others)的个数
{
char str[1000];//定义一个字符存储位置,上限为1000个字符
int i, word, space=0,others=0,digit=0,letter=0;
gets_s(str);//输入所要计算单词数量的句子
word = str[0] != ' ' && str[0] != '\0' ? 1 : 0;//将不输入和输入空格这种情况定为0个单词
for (i = 1; str[i] != '\0'; i++)//设置字符循环依次读取,读取为空字符时结束读取
{
if (str[i] != ' ' && str[i - 1] == ' ')//设置当前字符为空格,现字符不为空格时记作有一个单词,(初始读取已经记为有一个单词)
{
word++;
}
}
for (i = 0; str[i] != '\0'; i++)//在设置循环统计空格和字母的数量,但目前无法统计标点符号,目前程序标点符号也会视作字母
{
if (str[i] == ' ')
{
space++;
}
else if (str[i] >= 'a' && str[i] <= 'z')
{
letter++;
}
else if (str[i] >= '0' && str[i] <= '9')
{
digit++;
}
else
{
others++;
}
}
printf_s("输入的单词的数量为%d\n", word);
printf_s("输入的字母数量为%d\n", letter);
printf_s("输入的空格数量为%d\n", space);
printf_s("输入的数字数量为%d\n", digit);
printf_s("输入的其他字符数量为%d\n", others);
}
int main(void)
{
docensus();
return 0;
}
当输入“happy birthday!“时,运行结果如下: