回 帖 发 新 帖 刷新版面

主题:函数的返回值是什么???

函数的返回值是什么???请高手讲解怎么来的???
假如给f()函数的形参m传递字符串"- - -4321cde"(-表示空格);
  

long f(char m[])
{
  long a;
   int s;
while(*m==' '||*m=='\t'||*m=='\n')
 m++;
s=(*m=='-'?-1:1);
if(*m=='+'||*m=='-1')
m++;
for(a=0;*m>='0'&&*m<='9';m++)
a=10*a+(*m-'0');
return s*a;
}

回复列表 (共7个回复)

沙发

[code=c]
long f(char m[])
{
    long a;
    int s;
    while(*m==' '||*m=='\t'||*m=='\n')
        m++;
    s=(*m=='-'?-1:1);
    if(*m=='+'||*m=='-')//不是if(*m=='+'||*m=='-1')吧
        m++;
    for(a=0;*m>='0'&&*m<='9';m++)
        a=10*a+(*m-'0');
    return s*a;
}
[/code]
你是想从一个字符串中提出其中的数据?

板凳

大哥!!怎说!!请说说原理!!!

3 楼

就是把字符串转换成long类型的数值
首先略过所有空字符,然后取出符号位,剩下的数字依次从char用ascii转换的方式转换成整数再拼起来

4 楼

又是ASCII啊a=10*a+int(*m-'0');在学习!!谢谢

5 楼

a=10*a+int(*m-'0');其实那个int()有点多此一举了
char是允许隐式转换成int的

6 楼

楼主的代码会不会有问题?
char m[]中的m是常量,那么怎么可以m++

7 楼

深圳华信群英科技有限公司,目前主要从事软件外包开发、高级软件人才定向输送等业务,面对日益严峻的大学生就业难和IT企业招聘难,自2006以来,与知名通信软件公司正式签订定向输送人才的合作协议,针对想进入软件行业的人员提供企业实训,实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段,共计900学时。
企业订单委培,内训前签订就业安置协议,100%保证就业。实训结束之后,在华信群英科技及其战略合作伙伴从事通信软件研发工作。欢迎有意向者加QQ:649846168咨询。

我来回复

您尚未登录,请登录后再回复。点此登录或注册