2016-10-25 11 views
0

初心者はこちら。私は配列要素を単一の整数に結合しようとしています。配列要素を組み合わせるArduino

データ要素11〜13をcombinedArrayに格納された単一の数値に結合したいと考えています。希望する結果は、combinedArray [1] = 123であることになります。

uint8_t data[32]; 
uint8_t combinedArray[2]; 
data[11] = {'1'}; 
data[12] = {'2'}; 
data[13] = {'3'}; 

何か助けていただければ幸いです。私はそれを連結するためにデータ型を変換する必要があると思います。

答えて

0

uint8_tの代わりにvarを使用できますか?

の割り当ては次のようにcombinedArrayする:あなたは、実際にすでに[]データ内の文字列を使用している

combinedArray[1] = data[11] + data[12] + data[13]

。 '1'は文字列、1は数値です。

0

あなたは(数値)変換が十分でなければなりません10進数に(アスキーで)

uint8_t data[32]; 
uint8_t combinedArray[2]; 
data[11] = {'1'}; 
data[12] = {'2'}; 
data[13] = {'3'}; 
String result = data[11] + data[12] + data[13]; 
//then you can convert that to a char array by doing result.toChars(); 
//or converty the result by doing Integer.parseInt(result); 
//you WILL have to use chars instead because they will concatenate correctly 
//because uint8_t is not a character its a number so when you concatenate    
//them you add the two ascii values together 
0

シンプル小数点行うことができる必要があります:data配列の要素を設定するための文字を使用している場合は

combinedArray[1] = 0;    // value must be defined 
for (uint8_t * ptr = data+11; ptr != data+14; ++ptr) { 
    combinedArray[1] *= 10;   // move previous value by one digit to the left (ie. 12 => 120) 
    combinedArray[1] += *ptr - '0'; // substract ascii value of '0' from character to get value and add it to the result 
} 

を間違えた場合は、- '0'を削除する必要があります。
data[11] = {'1'};に文字 '1'があり、値49(文字 '1'のASCII値)です。

関連する問題