[問題] 如何把一個char陣列轉成int陣列

看板C_and_CPP作者 (快樂蕃茄)時間10年前 (2013/08/27 21:02), 編輯推噓3(3017)
留言20則, 7人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev-C++ 4.9.9.2 問題(Question): 我有一個char陣列,char a[10]="123456789" 我想把它轉成一個int陣列,int b[10]={1,2,3,4,5,6,7,8,9} 錯誤結果(Wrong Output): 編譯出現錯誤訊息 invalid conversion from `char' to `const char*' initializing argument 1 of `int atoi(const char*)' 看不懂XD 程式碼(Code):(請善用置底文網頁, 記得排版) #include <iostream> #include <cstring> #include <cstdlib> //for system() using namespace std; int main( ) { char a[10]="123456789"; int b[10]={0}; int num=strlen(a); for(int i=0;i<num;i++) { b[i]=atoi(a[i]); //error!!這裡出現錯誤 cout<<b[i]<<endl; } system("pause"); return 0; } 補充說明(Supplement): 請各位先進教教小弟錯誤訊息是什麼意思 以及幫我修改程式碼來達到上述要求。 感恩!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.165.76.134

08/27 21:56, , 1F
b[i] = a[i] - '0';
08/27 21:56, 1F

08/27 21:58, , 2F
你問了一個目前正夯的問題(?
08/27 21:58, 2F

08/28 00:05, , 3F
感覺這句 char a[10]="123456789"; 問題就很大...
08/28 00:05, 3F

08/28 00:08, , 4F
可以分享一下嗎?
08/28 00:08, 4F

08/28 00:14, , 5F
是我才淺,"123456789" 是不是應該是 const char *?
08/28 00:14, 5F

08/28 00:17, , 6F
把他放進 char 陣列後,內容會變成什麼呢?
08/28 00:17, 6F

08/28 00:21, , 7F
呵呵,原來會排好放在陣列裡,測試了是我錯,抱歉!
08/28 00:21, 7F

08/28 00:23, , 8F
Never mind. 有趣的是你覺得 char a[9]="123456789"會過嗎
08/28 00:23, 8F

08/28 00:30, , 9F
這樣...,編譯器就抱怨了吧!位子不夠睡啊...
08/28 00:30, 9F

08/28 00:30, , 10F
大大們,要不要改試看看"long long"? 0.0!
08/28 00:30, 10F

08/28 00:34, , 11F

08/28 00:34, , 12F

08/28 00:42, , 13F
對喔,C 可以過的
08/28 00:42, 13F

08/28 00:43, , 14F
函式生不出30cm只有15cm原來如此 ( ̄─┐ ̄)
08/28 00:43, 14F

08/28 01:51, , 15F
我不太建議別人用內建涵式,主要是因為常會亂用...
08/28 01:51, 15F

08/28 01:57, , 16F
基本上很多東西知道原理都能自己寫,就像1樓那個一樣
08/28 01:57, 16F

08/28 05:02, , 17F
怕亂用就不用?!! 怎麼不是去學習不要亂用
08/28 05:02, 17F

08/28 10:22, , 18F
VERY LONG
08/28 10:22, 18F

08/28 10:23, , 19F
用library沒什麼不好 不好的是傳說迷信
08/28 10:23, 19F

08/28 10:26, , 20F
仔細看英文說明文件、照章操作,才能破除迷信
08/28 10:26, 20F
文章代碼(AID): #1I7ADBGt (C_and_CPP)
文章代碼(AID): #1I7ADBGt (C_and_CPP)