2014-09-12 21 views
-1

該環路簡單地通過從data []到功能cast該字符轉換成ASCII每單個字符。如何函數的重新調整的值存儲到數組用C

我的問題是,我想返回的值存儲到一個數組「緩衝[]」,但它是僅存儲所述第一返回的值。換句話說,我想要buffer []具有來自該函數的所有重新調整的值。

for (int i =0 ; i < 8; i++) 
{ 
    if (data [i] != '\0') 
    { 
     buffer [i] =cast(data[i]); 
    } 
} 

long cast (char b) 
{ 
    long x = 0; 
    x = (long)b;  
    return x; 
} 
+1

你並不需要的功能只是投一個變量。 – 2014-09-12 18:16:17

+0

什麼是緩衝區類型?它看起來像緩衝區是字符,你只是有未定義的行爲。 – 2014-09-12 18:18:11

+0

@IvanIvanov長型 – AliDeV 2014-09-12 18:18:58

回答

1

沒有必要寫一個函數來做一個類型轉換。

buffer[i] = (long)data[i]; 
+0

謝謝。你幫我刪除了演員功能。 – AliDeV 2014-09-12 19:01:56

0

我通過使數據數組和緩衝區數組的大小相同來解決問題。 示例;

data [512]; 
buffer [512]; 

因此,現在每個從數據轉換的元素都保存在緩衝區數組中。

+0

發佈爲答案,因爲評論不喜歡格式化代碼。 – 2014-09-13 08:51:13

0

你的循環條件也有一個根本的缺陷,如果它在處理字符串。

for (int i =0 ; i < 8; i++) 
{ 
    if (data [i] != '\0') 
    { 
     buffer [i] =cast(data[i]); 
    } 
} 

如果數據[3] == '\ 0' 的循環繼續,直到我< 8. 我建議;

for (int i =0 ; i < 8; i++) 
{ 
    if (data [i] == '\0') 
    { 
     break; 
    } 
    buffer [i] =cast(data[i]); 
} 

(最初發布的評論)

相關問題