- ベストアンサー
プログラミングの問題なのですが、
プログラミングの問題なのですが、 文字列[black]と[dog]を異なった2つの配列に初期化して与え、 別の配列をさらに定義、その中に1つの文字列 [blackdog]として データを代入⇒表示する(出力例: black + dog = blackdog) というプログラムはどんなのになるか教えて下さい。 ただし、使えるのはfor文・配列・if文ぐらいでそれ以上レベルの高いものは使わないで下さい。 始めは char str1[6]={'black'}; char str2[4]={'dog'}; char str3[9]; int i, ……; という感じでお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>ただし、使えるのはfor文・配列・if文ぐらいでそれ以上レベルの高いものは使わないで下さい。 #4 さんの sprintf() が「レベルの高い」として、#2 さんの「forループ」で書いてみました。 2つの「forループ」の仕組みに、微妙な違いがあることに注目して下さい。 char str1[6] = "black"; char str2[4] = "dog"; char str3[9]; int i, nn = 0; for( i = 0; i < 6; i++ ){ if( '\0' == str1[ i ] ) break; str3[ nn++ ] = str1[ i ]; } for( i = 0; i < 4; i++ ){ str3[ nn++ ] = str2[ i ]; if( '\0' == str2[ i ] ) break; } printf( "%s + %s = %s\n", str1, str2, str3 );
その他の回答 (4)
- toda hiro(@hiro_knigh)
- ベストアンサー率39% (59/151)
こんなのでいいのかな? ※検証はしていない。 char str1[6] = "black"; char str2[4] = "dog"; char str3[9]; sprintf(str3 ,"%s%s",str1,str2);
お礼
ご回答ありがとうございます。 そういう事だと思いますが、sprintfというのが何か知らないです。
- asuncion
- ベストアンサー率33% (2127/6289)
str1[]とstr2[]の初期化方法が誤っています。
お礼
ご回答ありがとうございます。 そうでしたか。よく考えてみます。
- anicicle
- ベストアンサー率36% (129/356)
>使えるのはfor文・配列・if文ぐらいでそれ以上レベルの高いものは使わないで下さい。 一つ目のforループで、str1[]の内容をstr3[]に入れる。 二つ目のforループで、str2[]の内容をstr3[]に入れる。この時、入れる場所はstr1[]の内容を入れた後から入れる。 str2[]が入れ終わったらstr3[]に「文字列の最後」を表す「'\0'」を追加する。 str3[]を表示して終了。
お礼
ご回答ありがとうございます。 何をすればこのプログラムができるのかが理解できました。
- SaKaKashi
- ベストアンサー率24% (755/3136)
言語が何かわかりませんね。C/C++と仮定すると。 strcpy(str3,str1); strcat(str3,str2);
お礼
ご回答ありがとうございます。 C言語ですね。 strcpy、strcatとはなんでしょうか?
お礼
ご回答ありがとうございます。 最終的にまた考えて、 for(i=0;str1[i]!='¥0';i++){ str3[n]=str1[i]; n++; } for(i=0;str2[i]!='¥0';i++){ str3[n]=str2[i]; } という感じでもいいですよね?