#include<stdio.h>
#include<string.h>
void main()
{
void tt(char a[]);
char a[100];
int a1=0,a2=0,a3=0,a4=0;
printf("请输入字符串:");
scanf("%s",a);
tt(a);
printf("有大写字母 %d 个\n",a1);
printf("有小写字母 %d 个\n",a2);
printf("有数字 %d 个\n",a3);
printf("有空格 %d 个\n",a4);
}
void tt(char a[])
{int i,a1,a2,a3,a4;
for(i=0;i<strlen(a);i++)
if(a[i]>'A'&&a[i]<'Z')
a1++;
else if(a[i]>'a'&&a[i]<'z')
a2++;
else if(a[i]>'0'&&a[i]<'9')
a3++;
else (a[i]==' ');
a4++;
}
这个程序哪里有问题?
main()函数里的错:
①scanf("%s",a);错了,改为:gets(a);
tt()函数里的错:
①你在tt()函数里定义的int i,a1,a2,a3,a4;是局部变量,这个函数使用完了,变量都没有把值返回给主函数的变量,而且没有进行初始化。
②for()的循环体中没有用{}括起来;
现帮你改正如下(方法我是用指针,你自己对照看看):
#include<stdio.h>
#include<string.h>
void main()
{
void tt(char a[],int *a1,int *a2,int *a3,int *a4);
char a[100];
int a1,a2,a3,a4;
printf("请输入字符串:");
gets(a);
tt(a,&a1,&a2,&a3,&a4);
printf("有大写字母 %d 个\n",a1);
printf("有小写字母 %d 个\n",a2);
printf("有数字 %d 个\n",a3);
printf("有空格 %d 个\n",a4);
getch();
}
void tt(char a[],int *e,int *b,int *c,int *d)
{int i,a1=0,a2=0,a3=0,a4=0;
for(i=0;i<strlen(a);i++){
if(a[i]>'A'&&a[i]<'Z')
a1++;
else if(a[i]>'a'&&a[i]<'z')
a2++;
else if(a[i]>'0'&&a[i]<'9')
a3++;
else if(a[i]==' ') a4++;
}
*e=a1,*b=a2,*c=a3,*d=a4 ;
}
截图:
#include <stdio.h>
int main()
{
char c;
int letters=0,space=0,digit=0,others=0;
printf("Please input some characters\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
others++;
}
printf("char=%d space=%d digit=%d others=%d\n",letters,space,digit,others);
getchar();
}
唉~~ 你完全没有搞懂函数的调用 你tt函数的a1,a2,a3,a4只能在tt中用不能调用到主函数中去,要在所有函数前面定义全局变量
#include<stdio.h>
#include<string.h>
int Num=0,Word=0,Other=0,P=0;
void main()
{
void ss(char str[]);
char str[10000];
gets(str);
ss(str);
printf("Word is %d\nNumber is %d\nP is %d\nOther is %d\n",Word,Num,P,Other);
}
void ss(char str[])
{
int i;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>=48 && str[i]<=57) Num++;
else if(str[i]==' ') P++;
else if(str[i]>=65 && str[i]<=90 || str[i]>=97 && str[i]<=122) Word++;
else Other++;
}
}
这是我以前编的一个输出句子字母,数字,空格,其他符号的 和你这差不多, 你借鉴借鉴吧 还有什么问题就再问我吧