2016-11-16 29 views
-1

我有2個功能,它們被稱爲SplitInt(unsigned int x)SplitChar(char x[])轉換C-樣式字符串到整數數組

SplitInt發生在任何正整數,例如12345,並提出每個數字成一個整數數組,但向後。因此,對於SplitInt(12345)數組是這樣的:

array[0] = 5 
array[1] = 4 
array[2] = 3 
array[3] = 2 
array[4] = 1 

SplitChar()應該做同樣的事情,但在採取C風格的字符串,如"12345"

我將如何區分單個數字並將它們發送到整數數組中?我不允許使用string課程。

謝謝!

+3

到目前爲止您嘗試過什麼?此外,請記住,一個c樣式的字符串只是一個'char'數組,並且'1 ='1' - '0'' –

+0

沒有什麼是誠實的。我只理解如何通過傳入的整數來實現,因爲我只是使用模數來將數字分隔爲單獨的數字。對於字符串,我從概念上知道我想要做什麼。 「123456789」被傳入,我看第一個字符,將它發送到數組中,然後將第二個字符發送到數組中,依此類推。不知道盡可能完成的語法。 – zubi

+0

我的函數聲明是否正確?我想要做的是這樣的: SplitChar(「123456789」); – zubi

回答

1
#define MAX_STR_LENGTH 100 

int array[MAX_STR_LENGTH]; 

int SplitChar(char x[]) 
{ 
    int len = strlen(x); 

    if (len > MAX_STR_LENGTH) 
     return -1; 

    int i = 0; 

    while (i < len) 
    { 
     array[len-i-1] = x[i] - '0'; 
     i++; 
    } 

    return len; 
} 

返回字符串的長度,如果太長,則返回-1。

+0

@ acraig5075謝謝,修正了 – Flanker

+0

如果你要提供免費的代碼,至少要比輸入太大時觸發UB好得多...... – Quentin

+0

@Quentin有道理,更新 – Flanker