一c语言题目,麻烦大神们帮忙看看啊,谢谢啦!
一c语言题目,麻烦大神们帮忙看看啊,谢谢啦!编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格字符的个数,在主函数中输入字符串以及输出上述的结果。提示:本...
一c语言题目,麻烦大神们帮忙看看啊,谢谢啦!编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格字符的个数,在主函数中输入字符串以及输出上述的结果。
提示: 本题可考虑: 方法(1)在程序中使用全局变量,讨论为什么用全局变量; 方法(2)能否不用全局变量。 展开
提示: 本题可考虑: 方法(1)在程序中使用全局变量,讨论为什么用全局变量; 方法(2)能否不用全局变量。 展开
1个回答
展开全部
用全局变量的原因是要返回多个值比较麻烦,函数返回单个值是比较简单的。
#include<stdio.h>
int a,b,c;
void f(char *s) {
while ( *s ) {
if ( *s==' ' ) c++;
else if ( *s>='0' && *s<='9' ) b++;
else if ( *s>='a' && *s<='z' ) a++;
else if ( *s>='A' && *s<='Z' ) a++;
s++;
}
}
void main() { char s[256];
a=b=c=0; gets(s); f(s); printf("字母%d,数字%d,空格%d\n",a,b,c);
}
可以不用全局变量。
#include<stdio.h>
void f(char *s,int *a,int *b,int *c) {
while ( *s ) {
if ( *s==' ' ) *c++;
else if ( *s>='0' && *s<='9' ) *b++;
else if ( *s>='a' && *s<='z' ) *a++;
else if ( *s>='A' && *s<='Z' ) *a++;
s++;
}
}
void main() { char s[256]; int a,b,c;
a=b=c=0; gets(s); f(s,&a,&b,&c); printf("字母%d,数字%d,空格%d\n",a,b,c);
}
更多追问追答
追问
*s是什么意思
我们现在只学了数组和函数的分模块处理,指针还没学
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询