文字列の連結方法について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Xoke

文字列の連結方法について

#1

投稿記事 by Xoke » 13年前

こんばんわ。
初めてトピックを立てさせていただきます。

拙いもので申し訳ないですがプログラムの一部を見ていただきたいです。
以下のようにfor文中でiの値を変化させながらStage数を変えて画像を格納させていきたいのですがを変えていきたいのですが、
このように処理を加えたところ、ビルドはできるのですが実行してすぐに*.exeは動作を停止しましたと表示され止まってしまいます。
おそらく文字列の連結の関数などの引数がうまく渡せていないのだと思います。詳しいやり方を教えていただきたいです。
あと一応
 'itoa' の宣言を確認してください。
というようなエラーメッセージも出ていますが実行はできています。この意味も教えていただきたいです。
よろしくお願いいたします。

char ch[]="1";

for(i=0; i<=6; i++){
    itoa(i,ch,10);
mpara.image=LoadGraph(strcat("pictures/stage/stage",strcat(ch,"sam.png")));
}

box
記事: 2002
登録日時: 15年前

Re: 文字列の連結方法について

#2

投稿記事 by box » 13年前

私だったら、strcatの連続ではなく、sprintfを使います。
itoaの件は、標準関数ではないのでわかりません。

コード:

char filename[80];    // サイズは適切な値にすること

for (i = 0; i <= 6; i++) {
    sprintf(filename, "pictures/stage/stage%dsam.png", i);
    mpara[i].image = LoadGraph(filename);
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 文字列の連結方法について

#3

投稿記事 by みけCAT » 13年前

コード:

strcat("pictures/stage/stage",strcat(ch,"sam.png"))
は、constの可能性がある文字列リテラルを書き換えることになるので、おかしなことになると思います。

chの要素数も少なすぎます。
アクセス違反にならない方がラッキーです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る