2010-05-27 63 views

回答

4

有作爲C.但是你的問題一個字符串數據類型,沒有這樣的事,你可以使用INT的atoi (爲const char * STR),記得包括< stdlib.h>中

+0

記住的atoi是相當新的C-世界,C90和C99。如果由於某種原因您沒有sprintf,那麼您不太可能會出現這種情況。 – 2010-05-27 21:35:45

+1

@ D'Nabre:'atoi'是_new _ ??? – 2010-05-27 23:18:07

1

你不能施放字符數組/爲const char *到C中的整數,至少不是在給你一個辦法明智的整數結果[1]。唯一的例外是如果你用它來將一個char轉換成一個整數,這基本上只是在擴大它,如果你看比特表示。

唯一的辦法,你可以做適當的轉換功能,如atoisscanf

[1]是的,我知道你可以的指針(爲const char *)轉換爲整數,但轉換指針的值,而不是它所指向的數據的價值。

+0

你的意思是我認爲sscanf,而不是fscanf。 – progrmr 2010-05-27 22:46:23

+0

我做了,謝謝你指出了這一點。 – 2010-05-27 23:14:53

2

C沒有字符串,但它確實有字符數組(就是我們常稱的字符串),如:

char someChars[] = "12345"; 

您可以轉換(不一樣的類型轉換)字符的內容陣列,以這樣一個int:

int result; 
sscanf(someChars, "%d", &result); 

或者用的atoi:

int result = atoi(someChars); 

類型鑄造類似於取機器人可口可樂和百事可樂標籤貼在瓶子上。
類型轉換是一樣傾瀉一瓶可樂成百事可樂罐。也許它會適合。

相關問題