[英]How to change a char to an integer?
我想將char數組的內容復制到int變量或數組中。 例如,前五個值必須轉到int數組(int x):
char a[] = "123456";
我在其他線程中看到要將char更改為int,我需要這樣做:
int x = a[0] - '0';
還有其他方法嗎?
如果我想將兩個或兩個以上的值分組,例如12、34和56,該怎么辦?
如果我沒有將它們另存為整數,而是浮點數或其他類型的東西怎么辦?
您正在編寫軌道上,但是,如果要轉換為整數數組,則應使用類似
int x[MAX_ELEM];
for(int i =0; i<sizeof(a)/sizeof(char); i++)
{
x[i] = a[i] -'0';
}
對於其他情況,您將需要單獨處理。
您必須執行int x = a[0] - '0';
是因為C中的字符編碼。發生的是您正在從字符中減去編碼偏移量。 下表列出了所有編碼值: UTF-8編碼 。 所以int x = a[0] - '0';
在您的情況下等於int x = 49 - 48;
具有您要尋找的正確值。 通過使用'0'
而不是0
您將使用char值0。
還有其他方法可以執行此操作,但是這種方法效果很好。 要使用其他類型,只需在創建int
之后進行類型轉換。
約翰獲得兩位數字的方法效果很好。 重新張貼在這里,它是number = 10 * digit1 + digit2
。
要回答您的問題:
number = 10 * digit1 + digit2
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.