![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.1ベストアンサー
- 回答日時:
main() {
int i;
DEF def;
/*defの構造体にデータの代入*/
memset(vvv, \0, BUFSIZ);
for(i=0; i<def.d; i++) {
sprintf(&www[strlen(www)], "%d,%d,%d,", def.e[i].a, def.e[i].b, def.e[i].c);
}
/* 最後のカンマを消す */
www[strlen(www)-1] = \0;
}
これでどうでしょう?
本当なら、もっとエラー処理が必要ですが、とりあえず代入部だけ。
検証してないので、バグるかも。。。。
No.5
- 回答日時:
回答への補足です。
データを vvv 格納する際に vvv[] の先頭アドレスから前回まで格納されたデータ分だけずらしたアドレスにデータを格納しなければなりません。
sprintf は入力された文字列のバイト数を返すのでその値を offset に足していき、vvvの先頭アドレスからのずれとして利用しています。
一番最初のデータの格納ではもちろんvvvの先頭からの格納となるので offset = 0として、その後は格納されたデータ分だけずれていくという具合です。
No.4
- 回答日時:
DEF def; と仮定
int i;
int offset;
char vvv[BUFSIZ];
if( def.d < 10 )
{
offset = 0;
for(i = 0; i < d; i++)
{
offset += sprintf(vvv + offset,"%d,%d,%d,",def.e[i].a,def.e[i].b,def.e[i].c);
}
}
でどうでしょうか?
No.2
- 回答日時:
少しだけ違うやり方(やってることは同じです)。
if (d > 0) {
sprintf(vvv, "%d, %d, %d", def[0].a, def[0].b, def[0].c) ;
}
for (i = 1 ; i < d ; i++) {
sprintf(vvv, "%s, %d, %d, %d", vvv, def[i].a, def[i].b, def[i].c) ;
}
dが1以上を保証されていればif文なしでsprintf()しても可。
sprintf()以外の関数呼び出しを避けてチョットだけスピードアップしてみました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
2重定義って??
-
typedef enumの使い方を教えて...
-
C++のfor文について
-
long型の定数の末尾にLを付ける...
-
構造体の要素すべてに対する四...
-
構造体の宣言でエラーが出ます。
-
enumについて
-
VC6でlong longでエラー?
-
エラー「invalid conversion fr...
-
クラス間の変数について
-
void func( void )について
-
C++でboolにintの値を代入する...
-
dequeにconstが混ざったアイテ...
-
構造体を生成時にわざわざ初期...
-
C言語のコンパイルエラー
-
構造体
-
visualstudio C# テキストボッ...
-
スレッドのスケジューリングポ...
-
C言語でmain関数でのreturnとexit
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
2重定義って??
-
visualstudio C# テキストボッ...
-
C++のfor文について
-
構造体の要素すべてに対する四...
-
typedef enumの使い方を教えて...
-
ハンドルされていない例外が発...
-
変数の型を定義しなかった場合...
-
関数の実体定義にヘッダファイ...
-
intとINTの違いは?
-
【#define】 defineで定義した...
-
C++でboolにintの値を代入する...
-
構造体の宣言でエラーが出ます。
-
main.c:7:43: warning: implici...
-
プログラムの中で別のmainを呼...
-
void func( void )について
-
エラー「invalid conversion fr...
-
C言語 宣言した変数になにも代...
-
0除算を判定したい
おすすめ情報