[问题] 字串转数字不须判别正负?

楼主: putumaxally (putumaxally)   2014-05-09 12:31:11
今天学校 C 语言老师教到字串转数字,我本来写先判别正负号的程式,
可是我同学没有判别正负结果结果也正确,真的很奇怪。以下是程式码
#include <stdio.h>
#include <stdlib.h>
int atoi(char *s){
int n = 0;//, t = 0;
//if(*s == '-'){t = 1;s++;}
while(*s)n = 10*n + (*s++) - '0';
return n;
//return (t ? n : -n);
}
void main(){
printf("%d\n", atoi("-123456789"));
system("pause");
}
作者: kwpn (ITSST)   2014-05-09 13:25:00
为什么很奇怪, 你拿atoi查到的应该是convert string tointeger而不是positive integer或unsigned integer
作者: BlazarArc (Midnight Sun)   2014-05-09 13:29:00
你用到了 <stdlib.h> 里面的 atoi 了
作者: kiedveian (极地之星光)   2014-05-09 13:38:00
int atoi (const char * s);
作者: uranusjr (←這人是超級笨蛋)   2014-05-09 16:51:00
VC++ 本来就可以编译 C 啊, IDE 的名字只是名字而已
作者: s25g5d4 (function(){})()   2014-05-09 18:31:00
C++ 不是 C 的 superset 吗...
作者: uranusjr (←這人是超級笨蛋)   2014-05-09 20:44:00
↑ 不是
作者: s25g5d4 (function(){})()   2014-05-09 22:02:00
作者: iloveyouever (佚名)   2014-05-09 22:26:00
vc可以去设定 改成单纯编译C的阿~
作者: Rondou (东东)   2014-05-10 02:50:00
你举的那个例子在 C99 就可以用了喔
作者: virve (std::vie)   2014-05-15 21:29:00
放心在VC写.c吧 标准很旧想写新标准也没办法XD

Links booklink

Contact Us: admin [ a t ] ucptt.com