一c语言题目,麻烦大神们帮忙看看啊,谢谢啦!

一c语言题目,麻烦大神们帮忙看看啊,谢谢啦!编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格字符的个数,在主函数中输入字符串以及输出上述的结果。提示:本... 一c语言题目,麻烦大神们帮忙看看啊,谢谢啦!编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格字符的个数,在主函数中输入字符串以及输出上述的结果。
提示: 本题可考虑: 方法(1)在程序中使用全局变量,讨论为什么用全局变量; 方法(2)能否不用全局变量。
展开
 我来答
cdyzxy
2018-06-07 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3599万
展开全部

用全局变量的原因是要返回多个值比较麻烦,函数返回单个值是比较简单的。

#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是什么意思
我们现在只学了数组和函数的分模块处理,指针还没学
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式