[問題] 字串轉數字不須判別正負?

作者: 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