2014-01-13 102 views
0

我想在雙數組中定義多個字符串,例如 values [0] [] =「something」,values [1] [] =「其他... 然後我想要填充每個字符串的長度,使它們是128個字符 最後,我想將128個字符串拆分爲4個字符的字符串,並將它們寫入4乘4(所以32個寫入)我知道我有幾個問題,但任何人都可以幫助?多個字符串操作不起作用

我發現這個問題,這是我的代碼,它不會是我想要的東西。感謝所有的建議。

for(k=0;k<inputs;k++){//do for all inputs 
    flag = 0; 
    int len = strlen(values[k]); 
    int padded_len = 127; 
    int i; 
    //pad inputs 
    for(i = 0; i < padded_len-len; i++){ 
       strcat(values[k], "0"); 
    } 

    for (off = 0; off < 128; off += 4){ 
     strncpy(temp[k], values[k]+off, 4); 
     temp[k] = '\0'; 

     temp_int = *((uint32 *) &values[k][off]); 

     if(flag==0){ 
     //write to HW regy 
     flag=1; 
     } 
     else{ 
     //write to HW regx 
     flag=0; 
     } 
    } 
+0

'const char values' !!!!! –

+0

頂部的一個問題是修改'const'字符串。如果您打算寫入字符串堆棧(自從'strcat(values,「0」)''以來顯然會這樣做),則在全局'values'中丟失'const'限定符。 – WhozCraig

+0

將字符串最多添加到128個字符時,用盡了緩衝區......尾部\ 0應該是哪裏? –

回答

0

右Ø FF蝙蝠,看起來你參考我們的價值觀時,[]數組與墊料部的錯誤,所以它應該是:

//pad inputs 
    for(i = 0; i < padded_len-len; i++){ 
       strcat(values[k], "0"); 
    } 

編輯:

此外,你需要增加的大小你字符串數組以包含空終止符的空間:

... char values[3][129]... 
+0

我做了這些修改。我編輯了問題以顯示警告。 – SamSong