ページ 11

" "(スペース)を挟んで n 回連結し,文字配列 s_out[ ] に格納するプログラム

Posted: 2010年12月09日(木) 17:17
by Time after time
一部分はわかるのですが、ほかに必要なソースコードが書けません。思いつきません。教えてください。お願いします。
#include <stdio.h>
/ここにヘッダを追加 したい。
int main(void)
{
int i, n, length;
char s_in[128], s_out[128];

fprintf(stderr, "Keyin n and str>> ");
scanf("%d%128s", &n, s_in);
/ここにプログラムを追加したい

/*ここまで
printf("%d %s\n", length, s_out);

(動作例)としては、下記のように実行させたいです。
Keyin n and str>> 5 HEY
19 HEY HEY HEY HEY HEY


return 0;
}

Re: " "(スペース)を挟んで n 回連結し,文字配列 s_out[ ] に格納するプログラム

Posted: 2010年12月09日(木) 17:37
by bitter_fox
文字列の連結は以下の要領で可能です。

コード:

sprintf(s_out+strlen(s_out), "%s ", s_in);
これを、n回繰り返してあげればよいですね。(ループ)

またループを抜けた際のstr_outの一番最後の文字はスペースになっているので補正してあげる必要があります。

コード:

if  (strlen(s_out) != 0)
{
    s_out[strlen(s_out)-1] = ' ';
}

Re: " "(スペース)を挟んで n 回連結し,文字配列 s_out[ ] に格納するプログラム

Posted: 2010年12月09日(木) 17:51
by T
ありがとうございます、。
では、それらのプログラムは具体的に、どの部分に組み込めば良いですか?

Re: " "(スペース)を挟んで n 回連結し,文字配列 s_out[ ] に格納するプログラム

Posted: 2010年12月09日(木) 17:56
by bitter_fox
「プログラムを追加したい」とご自身がおっしゃている所に適切に追加してください。

フォーラムルールでは、
「なるべくオリジナルな名前を決め、以後同じ名前を使い続けてください。」
とあります。これに従ってください。でないと混乱を招きます。

Re: " "(スペース)を挟んで n 回連結し,文字配列 s_out[ ] に格納するプログラム

Posted: 2010年12月09日(木) 18:17
by non
あきらかに、学校の課題ですよね。
すると、何でも関数を使って良いとは限らないですけど・・・
解けばいいってもんじゃないと思うけどね。
たとえば、sprintfは習ったの?他に、strlenは?strcatは?