2012-05-14 84 views
3

我需要將我的字符串轉換爲int數組。所以我在字符串上做了一個循環,並且從stdlib.h調用int atoi(char *p)函數,但它在mac上不工作(有時候我在Windows上嘗試過它,並且它工作的很好)。簡單的循環:Atoi(char * p)函數

for(p = buff; *p; p++) 
    printf("%d", atoi(p)); 

這個功能的工作有什麼問題,你覺得呢?

+1

你的意思是將'buff'中的每個'char'轉換爲'int'? – hmjd

回答

5

該功能工作得很好。例如,如果buff包含"123",您的代碼將打印123233

但是,您似乎只想打印個別數字的值,在這種情況下atoi與您的問題無關。嘗試:

for(p = buff; *p; p++) 
    printf("%d", *p-'0'); 
+1

你應該使用'isdigit()'來檢查它在轉換之前是否真的是數字 – dwalter

+0

yap,thnx是isdigit。 –

+0

如果它是正確的,你應該接受答案 – CStreel