首页 新闻 会员 周边

此函数的for if for执行流程?哪个大神能补写个完整程序我测试一下!

0
悬赏园豆:10 [待解决问题]

这个函数是测试数组的吗?

数组的值在哪获得?

如果我的数组是-2 -5 dfgh -4 5 6它输出什么?

如果是-2 -5 它输出什么?

这个函数给我一种坑爹到极致的感觉?是不是印错了

cnblogs2019的主页 cnblogs2019 | 初学一级 | 园豆:192
提问于:2016-03-07 09:59
< >
分享
所有回答(1)
0

atoi() 函数用来将字符串转换成整数(int),其原型为:
int atoi (const char * str);

【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

【返回值】返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。

 

示例(c#下测试的,改成c的,应该没问题):

 1 //如果是正负符号或者数字返回 false
 2         int isspace(char ch) { return !((ch == '+' || ch == '-') || (ch >= '0' && ch <= '9')); }
 3         //如果是数字返回 true
 4         int isdigit(char ch) { return (ch >= '0' && ch <= '9'); }
 5 
 6         int atoi(char s[])
 7         {
 8             int i, n, sign;
 9             //找到正负符号或者数字的起点
10             for (i = 0; isspace(s[i]); i++) {; }
11             //正负符号判断
12             sign = (s[i] == '-') ? -1 : 1;
13             //有正负符号移动下标
14             if (s[i] == '+' || s[i] == '-') { i++; }
15             //将连续的数字字符转换
16             for (n = 0; isdigit(s[i]); i++)
17             {
18                 n = 10 * n + (s[i] - '0');
19             }
20 
21             return sign * n;
22         }

 

皓月空 | 园豆:723 (小虾三级) | 2016-03-07 16:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册