# include <stdio.h>
int i,z=0,s=0,q=0;
void f1(char str[100],char str1[100],char str2[100],char str3[100]); //全局变量
int main ()
{
char str[100],str1[100],str2[100],str3[100];
printf ("input string:\n");
gets(str);
f1(str,str1,str2,str3);
printf ("字母数: %d %s\n",z,str1);
printf ("数字个数:%d %s\n",s,str2);
printf ("其他字符:%d %s\n",q,str3);
return 0;
}
void f1(char str[100],char str1[100],char str2[100],char str3[100])
{
for (i=0; str[i] != '\0'; i++)
if ((str[i] >= 'A') && (str[i] <= 'Z') || (str[i] >= 'a') && (str[i] <= 'z'))
{
str1[z++] = str[i];
str1[z] = '\0';
}
else if (str[i] >= '0' && str[i] <= '9')
{
str2[s++] = str[i];
str2[s] = '\0';
}
else
{
str3[q++] = str[i];
str3[q] = '\0';
}
}
问题是:当字符串中不存在数字或字母或其他字符的时候 为什么会出现乱码?显示的个数是对的。。大家给看看。。可以直接复制到vc++6.0上试试。。。