我正在努力完成作業,這是自今天下午以來我無法弄清楚的最後一件事。如何從一個字符串中獲取兩個數字並將其轉換爲一個變量中的int?
例如說我有這樣ABCD24EFG
數組中的字符串,我想在我初始化哪種類型int
我可以用一個單號做到這一點,將其轉換像一個變量數24
這
number_holder = array_name[4] - '0';
,我將讓你在number_holder
2
,但我怎麼能得到整個像24
並將它們轉換爲int
類型?
我正在努力完成作業,這是自今天下午以來我無法弄清楚的最後一件事。如何從一個字符串中獲取兩個數字並將其轉換爲一個變量中的int?
例如說我有這樣ABCD24EFG
數組中的字符串,我想在我初始化哪種類型int
我可以用一個單號做到這一點,將其轉換像一個變量數24
這
number_holder = array_name[4] - '0';
,我將讓你在number_holder
2
,但我怎麼能得到整個像24
並將它們轉換爲int
類型?
你可以使用這個邏輯。
number_holder=array_name[4] - '0';
number_holder=number_holder*10 + (array_name[5] - '0');
這種方式,您還可以處理像ABCD243EFG,ABCD2433EFG數組值...
的整數0-9 ASCII值48 - 57 ..所以用這個陣列中找到整數。
number_holder=0;
For (int i=0;i<arraylength;i++)
{
if(array[i]<58 && array[i]>47)
number_holder=number_holder*10+array[i] - '0';
}
您將在number_holder中獲得結果。
這可以使用非'24'嗎?比如說'ABC10DEFG'會起作用嗎? – Ali
當然它會工作! – ScarCode
@vikiiii:只要你記得每個額外的數字從1到數十到數百等,它將工作更多的數字。 – Blastfurnace
嘗試
number_holder_1 = array_name[4] - '0';
number_holder_2 = array_name[5] - '0';
你會得到兩個數字。 並執行
number = number_holder_1 * 10 + number_holder_2 ;
如果該號碼不能是2個位數,那麼你可以使用一個for循環來獲得所需要的數量。
您可以使用著名的算法
n = 0
while (char = nextchar()) {
n = n*10 + digit(char)
}
僞語言
如果你能找到一個字符串一個號碼,你試圖展望字符串中的下一個位置,並檢查是否那也是一個數字? – Eric
@Eric我有if語句來執行檢查是否是數字。 – Ali
用for循環中的運行索引替換4。順便說一句:每個變量都是一個持有者的形式,所以命名其中一個_holder並沒有多大幫助。 'array_'也是如此,它只會阻礙重構,如果你碰巧喜歡一個向量。 –