#include<stdio.h>int i=0,j=0,k=0,m=0;void count(char str[ ]);int main(){ char str1[100]; printf(""); count(str1); printf("字母有:%d个\n数字有:%d个\n空格有:%d个\n其他字符有:%d个\n",i,k,j,m);}void count(char str[]){ gets (str); for(;str[i]!='\0';i++) {if(str[i]==' ') j++; else if((str[i]<='z'&&str[i]>='a')||(str[i]<'Z'&&str[i]>'A')) i++; else if(str[i]<58&&str[i]>47) k++; else m++; }}有问题,
你的i值重复了,在count函数中i代码操作到的下标,也代表字母的个数。
应改为
#include<stdio.h>