主题:函数的返回值是什么???
773950918
[专家分:0] 发布于 2010-06-09 13:23:00
函数的返回值是什么???请高手讲解怎么来的???
假如给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个回复)
沙发
alweeq86 [专家分:1170] 发布于 2010-06-09 15:55:00
[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]
你是想从一个字符串中提出其中的数据?
板凳
773950918 [专家分:0] 发布于 2010-06-09 16:07:00
大哥!!怎说!!请说说原理!!!
3 楼
雪光风剑 [专家分:27190] 发布于 2010-06-09 20:14:00
就是把字符串转换成long类型的数值
首先略过所有空字符,然后取出符号位,剩下的数字依次从char用ascii转换的方式转换成整数再拼起来
4 楼
773950918 [专家分:0] 发布于 2010-06-09 21:36:00
又是ASCII啊a=10*a+int(*m-'0');在学习!!谢谢
5 楼
雪光风剑 [专家分:27190] 发布于 2010-06-09 22:14:00
a=10*a+int(*m-'0');其实那个int()有点多此一举了
char是允许隐式转换成int的
6 楼
Screenager [专家分:840] 发布于 2010-06-09 23:56:00
楼主的代码会不会有问题?
char m[]中的m是常量,那么怎么可以m++
7 楼
xiaoruo331 [专家分:100] 发布于 2010-06-11 11:10:00
深圳华信群英科技有限公司,目前主要从事软件外包开发、高级软件人才定向输送等业务,面对日益严峻的大学生就业难和IT企业招聘难,自2006以来,与知名通信软件公司正式签订定向输送人才的合作协议,针对想进入软件行业的人员提供企业实训,实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段,共计900学时。
企业订单委培,内训前签订就业安置协议,100%保证就业。实训结束之后,在华信群英科技及其战略合作伙伴从事通信软件研发工作。欢迎有意向者加QQ:649846168咨询。
我来回复