我知道這可能是一個非常初學者的問題,但我幾個小時一直在反駁它。任何提示將不勝感激。將字符數組轉換爲整數
我得到一個以null結尾的字符串。我試圖用C和strtol將它轉換爲整數,這很好地工作,直到NULL之前的最後一個字符是/ n。我不確定如何讓strtol在該角色之前停下來。
轉換代碼:
char *end;
arr[0] = strtol(temps, &end, 10);
for(int i = 1; i < n - 1; i++){
arr[i] = strtol(end, &end, 10);
}
arr[n] = strtol(end, NULL, 10);
輸入:
49 32 45 50 32 45 56 32 52 32 53 10 // ascii values
預期輸出:
1 -2 -8 4 5 // character array
輸出:
1 -2 -8 4 1 // int array
謝謝你的幫助。
解釋什麼是你認爲是錯的程序。在程序中包含示例不正確的輸出。解釋它是如何獲得的(你的代碼片段沒有任何I/O函數)。** NB **:你確定要將'end'作爲第一個參數傳遞給'strtol'嗎? – DyZ
嗨,對不起,int數組輸出是不正確的輸出。它應該輸出一個5,但它輸出一個1. 我想也許我不理解str_end參數,以使它明白它應該停在\ n。我相信第一個目標是正確的。我只是覺得最後一個NULL是不正確的。 對於I/O,它給了我由ascii值輸出指定的字符數組temps [](我沒有包含NULL終止符,但它在那裏)。我需要將它轉換爲int數組, – MushinZero
發佈'arr []'的定義。 – chux