c语言怎么统计输入的汉字的个数和英文单词的个数

2024-11-05 23:26:59
推荐回答(4个)
回答(1):

#include 
int main(void)
{
    char s[1000];
    int c,e;
    char *cp;

    gets(s);
    cp = s;
    c = e = 0;
    while(*cp)
    {
        if(*cp<0)
        {
            c++;
            cp++;
        }
        else if((*cp >= 'a' && *cp <= 'z') || (*cp >= 'A' && *cp <= 'Z'))
        {
            e++;
            while((*cp >= 'a' && *cp <= 'z') || (*cp >= 'A' && *cp <= 'Z'))
                cp++;
        }
        cp++;
    }
    printf("汉字%d个,英文单词%d个", c, e);
    return 0;
}

回答(2):

#include
int main()
{
int a, b, c,xiaoxie,daxie;
char i;
printf("请输入字符或数字(输入回车结束):\n");
while ((i = getchar()) != 10)
{
if(i>='a'&&i<='z')
xiaoxie++;
if(i>='A'&&i<='Z')
daxie++;
a++;
if (i == ' ')
b++;
if (i >= '1' && i <= '9')
c++;
}
printf("字符个数为%d\n", a);
printf("空格数有%d", b);
printf("\n数字数有%d\n", c);
printf("小写字母有%d\n",xiaoxie);
printf("大写字母有%d\n",daxie);
}

回答(3):

一个汉字由两个连续负值的ASCII码组成。
当ASCII值为负j++,最后汉字个数为j/2
单词个数基本上就是数空格
我和题主一样懒
就这样

回答(4):

#include

#define MAX 1024

int main(void)
{
int sum = 0,chineses = 0;
char str[MAX];
char *ch = str;

printf("请输入一串字符:");

fgets(str,MAX,stdin);

printf("您输入的内容是:%s \n",str);

while(*ch != '\0')
{
if(*ch < 0 && (*ch+1)<0)
{
chineses++;
ch =ch + 2;
}
else
{
ch++;
}

sum++;

}
printf("%d字符 %d汉字",sum-1,chineses);

return 0;
}