2015-10-04 20 views
0

我需要一點關於將char轉換爲單個整數值的指導。我不應該使用任何轉換它們的庫函數。我理解我如何使用char - '0'= int將單個字符轉換爲數組中的int,我的問題是如果有一種方法可以將整數數組作爲一個整數。我正在使用iostream,字符串和cctype。字符數組到單個整數

謝謝

+0

這可能會有所幫助:http://stackoverflow.com/questions/23001591/treating-a-character-array-as-an-integer-learn-c-the-hard-way-extra-credit。 –

+0

你*知道簡單的算術,以及十進制系統是如何工作的(10的倍數和所有這些)? –

+0

因此,你有{'1','6','2'}或像{1,6,2}這樣的整數數組的字符數組? – aisa

回答

2

看看這個代碼:

#include <string.h> 
#include <iostream> 

int main(void) { 
    char str[20] = {'1', '2', '3', '4', '5', '6', '\0'}; // char string; 
    int i, len; 

    long long number = 0;         // number which stores the value 

    len = strlen(str);         // calculate the length of string 
    i = 0; 
    for(i=0; i<len; i++) { 
     number = 10*number + (str[i] - '0'); 
    } 

    std::cout << number << std::endl;      // number 
    return 0; 
} 

注:它可以處理所有的+香港專業教育學院值範圍從0 到9,223,372,036,854,775,807。我們甚至可以將它擴展爲-ive值,我們只需檢查字符串的第一個字符是否爲減號( - )

+0

如果您要提出有關最大值的聲明,請改爲使用「int64_t」或「uint64_t」。 –

+0

謝謝,這是有道理的,我試圖找出一種方式來使用10以某種方式。我覺得自己是一個白癡,一開始就沒有看到這個。 – Motorscooter

+0

是的,我正在運行一個if語句,它說如果第一個元素是負數,它會減去它添加的其他元素。 – Motorscooter

相關問題