C语言中输入一行文字,找出其中的大写字母、小写字母、空格、数字以及其他字符各有多少。elseif(*(p+i)=="")应该

else if(*(p+i)==" ") 应该是单引号。还有这种算法有问题,因为在输入时空格就是结束符 所以不能统计空格以及空格之后的字符
count为一维数组,count[i]++用法错误
试试下面的:

#include"stdio.h"

void countstr(char *array)
{
int words=0,numbers=0,spaces=0,others=0;
char *p=array;
for(p;*p!='\0';p++)
{
if(((*p>='A')&&(*p<='Z'))||((*p>='a')&&(*p<='z')))
words++;
else if((*p>=48)&&(*p<=57))
numbers++;
else if(*p==32)
spaces++;
else
others++;
}
printf("words=%d,numbers=%d,spaces=%d,others=%d\n",words,numbers,spaces,others);
}

void main()
{
char str[80];
printf("Please input one segment:\n");
gets(str);
countstr(str);
}

C语言中输入一行文字,找出其中的大写字母、小写字母、空格、数字以及其他字符各有多少。elseif(*(p+i)=="")应该
← 上一篇: 下一篇: →