- ベストアンサー
C言語でchar配列の追加
C言語について質問させていただきます. unsigned char send_data[]; 上記の配列の double d1 = 15.23; double d2 = 14.21; double d3 = 20.56; 上記3つのdouble変数を間に , を入れて連結して代入したいと考えています. 結果はsend_data = "15.23,14.21,20.56"となってほしいです. ポインターなどを使用すれば上記は実現できますでしょうか? お分かりになられる方がいらっしゃいましたら,何卒ご教授よろしくお願い致します.
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
double d1 = 15.23; double d2 = 14.21; double d3 = 20.56; まず、小数点以下は2進数では表せません。 #include <stdio.h> #include <stdlib.h> void main() { unsigned char *send_data; double d1 = 15.23; double d2 = 14.21; double d3 = 20.56; send_data = (unsigned char*)malloc(sizeof(char)*100); sprintf(send_data,"%f4.2,%f4.2,%f4.2",d1,d2,d3); printf("%s",send_data); } 結果は 15.2300004.2,14.2100004.2,20.5600004.2 こうなります。
その他の回答 (1)
- wormhole
- ベストアンサー率28% (1626/5665)
unsigned char send_data[32]など、 send_dataが"15.23,14.21,20.56"を設定できるだけの領域確保されているならできます。 sprintfやsnprintfを調べてみてください。
お礼
ご回答ありがとうございます. sprintfを用いて動作するようになりました.
お礼
ご回答ありがとうございます. ご提示いただいたコードでほぼ,所望の結果を得ることができました. ただ,コンパイラの違いなのか,unsigned char *send_dataではエラーが出たため, unsigned char send_data[]に変更し,mallocをなくして実行すると問題なく動作致しました. ありがとうございました.