急ぎです。空白を含め、次々と文字を連結、.で終わらせる。

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

急ぎです。空白を含め、次々と文字を連結、.で終わらせる。

#1

投稿記事 by I am You. » 13年前

プログラムは、次のようにこしらえました。
#include <stdio.h>
#include <string.h>

int main(void)
{
char s_in[128], s_out[128];




printf("Keyin a word>> ");
for(scanf("%128s",s_in);len(s_in)>0;)
{

strcpy( s_out,s_in);
strcat( s_out, s_in);
}

printf("%s\n", s_out);

return 0;
}

期待している実行結果はこれです。
Keyin a word>> I
Keyin a word>> am
Keyin a word>> a
Keyin a word>> rich
Keyin a word>> man
Keyin a word>> .
I am a rich man.

わからない1点目:strcpy() で s_out[ ] を初期化するやりかたが分かりません
わからない2点目:for文のscanf("%128s", s_in);以下に書くコードが思いつかない。

こんな感じですが、どなたか教えてください。
待ってます。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 急ぎです。空白を含め、次々と文字を連結、.で終わらせる。

#2

投稿記事 by h2so5 » 13年前

>.で終わらせる。

と書かれていますが、
ドット1文字だけの入力で終わらせるのか、
それとも、ドットを含む文字列を入力したら終わらせるのかどちらでしょうか?

I am You.

Re: 急ぎです。空白を含め、次々と文字を連結、.で終わらせる。

#3

投稿記事 by I am You. » 13年前

.1文字のみ入力したら終わらせたいです。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 急ぎです。空白を含め、次々と文字を連結、.で終わらせる。

#4

投稿記事 by h2so5 » 13年前

I am You. さんが書きました:わからない1点目:strcpy() で s_out[ ] を初期化するやりかたが分かりません
初期化の意味は分かりますか?
この場合の初期化は、s_out[ ]の中身を””にすることです。
そしてstrcpy(a,b)は、aの文字列の内容を、bと等しくする関数です。

ちなみにlen(s_in)の判定があるため、s_in[ ]も初期化は必要です。
I am You. さんが書きました:わからない2点目:for文のscanf("%128s", s_in);以下に書くコードが思いつかない。
そもそもfor文の使い方がおかしいです。

for(最初に1度だけ実行される処理;継続条件;1ループした後に実行される処理)

のように書きます。
for(scanf("%128s",s_in);len(s_in)>0;)
では、1度だけしか読み込みがされず、ずっと文字数が0以上のため無限ループします。

あと、lenという関数はありません。strlenの間違いでは?

そして、for文の中にはs_outにs_inを連結させる処理と、
ドットが入力されたらループを抜ける処理を書きます。

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

Re: 急ぎです。空白を含め、次々と文字を連結、.で終わらせる。

#5

投稿記事 by box » 13年前

>わからない1点目:strcpy() で s_out[ ] を初期化するやりかたが分かりません

s_out[]を初期化する際、strcpy()を使う必然性がありません。
質問者さんが考えている「初期化」の中身を教えてください。

# 「急ぎです」とか「至急」なんて書くのは、かえって逆効果かもしれぬ。
# そんなに切羽詰まっているんなら放っておこうか、なんて考える人がいるかも。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
ゆーずぃ
記事: 62
登録日時: 13年前
住所: 埼玉県

Re: 急ぎです。空白を含め、次々と文字を連結、.で終わらせる。

#6

投稿記事 by ゆーずぃ » 13年前

box さんが書きました:# 「急ぎです」とか「至急」なんて書くのは、かえって逆効果かもしれぬ。
確かにそうかもしれませんね。
昔からそういったタイトルを付ける人は解決しても感謝もせずに放置で去ってしまう人が多い気がするので、
回答する側としても「どうせ同じ類だろ~」って感じて回答するのをためらっちゃうんですよね。
まぁ、そんなことを感じるのは僕だけかもしれませんがw

とりあえず本題として、急ぎなら期日を書いてほしかったり。

閉鎖

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