![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.5ベストアンサー
- 回答日時:
#2補>
#include <stdio.h>
unsigned str_length(const char str[]){
unsigned len=0;
while (str[len])
len++;
return (len);
}
void put_rstring(const char str[]){
unsigned i;
i = str_length(str);
while (i-- >0)
putchar(str[i]);
}
int main(void){
char str[30];
int ch,i=0;
printf("文字列を入力\n");
while (1) {
if (EOF==(ch=getchar()))
break;
else
str[i++]=ch;
}
str[i]='\0';
printf("逆から表示");
put_rstring(str);
puts("です。");
return(0);
}
No.4
- 回答日時:
> どこが駄目か教えてください。
宜しくお願いします。> (コンパイルエラーです。)
どの行でどんなエラーが出たかくらいは明記すべし。
ところで、↓に従うつもりはないのですね。
1. 文字列格納領域: char str[30]; を用意し、
2. 入力された文字列を"そのまま"strに格納し、
2.5 strの内容を逆順にし、
3. strを出力する
この回答への補足
コンパイルはできました。しかし、実行してもできません。
何か文字列を入力して、 そして、Ctr1+Zを押す。ここで、本当なら、逆順のプログラムが、表示されるのですが、ZZZとなってしまってプログラムが表示されません。そこで、Enterを押すと、逆順から表示とでるのですが、文字列が文字化けみたいになってしまいます。どうすればいいですか教えてください。宜しくお願いします。別に従うつもりがないわけではないんですが
...
No.3
- 回答日時:
要素数がNだとして。
str[0]と、str[N-1]を入れ替えます。
str[1]と、str[N-2]を入れ替えます。
str[2]と、str[N-3]を入れ替えます。
・
・
・
そうすると、期待通りの結果になりませんか?
indexを0から(N/2)-1まで
str[index]と、str[N-1-index]を入れ替えます。
をすれば期待通りの結果になりませんか?
これについては、
↓にソースを示します。
あと、別解としては、http://www.interq.or.jp/jazz/iijima/stl/contents …
std::reverse(
を使う。以上。
#include <stdio.h>
#define MAX 512
void reverse(char* argData);
int main(int argc, char** argv) {
char str[MAX];
int count = 0;
printf("文字列を入力");
while (1) {
char ch=getchar();
if (ch == EOF) {
str[count] = '\0';
break;
}
str[count] = ch;
count++;
}
reverse(str);
printf("\n");
printf("[%s]\n", str);
return 0;
}
void reverse(char* argData)
{
int size = strlen(argData);
int half = size / 2;
int index = 0;
for( ; index < half ; index++) {
char temp = argData[index];
argData[index] = argData[size-1-index];
argData[size-1-index] = temp;
}
}
No.2
- 回答日時:
この回答への補足
考えて見たのですが、どうしても分かりません。どこが駄目か教えてください。宜しくお願いします。
(コンパイルエラーです。)
#include <stdio.h>
unsigned str_length(const char str[])
{
unsigned len=0;
while (str[len])
len++;
return (len);
}
void put_rstring(const char str[])
{
unsigned i = str_length(str):
while (i-- >0)
putchar(str[i]);
}
int main(void)
{
char str[30];
int ch;
printf("文字列を入力\n"); /* ----この文字列を入力したあとに、Ctrl+Zを押すと、逆から表示
で反対から、文字列が表示----*/
while (1) {
ch=getchar();
if (ch==EOF) break;
}
printf("逆から表示");
put_rstring(str);
puts("です。");
return(0);
}
No.1
- 回答日時:
# 注意:タイトルは質問内容を端的に表したものを。
1. 文字列格納領域: char str[30]; を用意し、
2. 入力された文字列を"そのまま"strに格納し、
3. strを出力する
プログラムなら書けますか?
それができたら、上記(2)と(3)の間に
2.5 strの内容を逆順にし、
を追加すればいい。まずは(1)~(3)を。
この回答への補足
考えて見たのですが、どうしても分かりません。どこが駄目か教えてください。宜しくお願いします。
(コンパイルエラーです。)
#include <stdio.h>
unsigned str_length(const char str[])
{
unsigned len=0;
while (str[len])
len++;
return (len);
}
void put_rstring(const char str[])
{
unsigned i = str_length(str):
while (i-- >0)
putchar(str[i]);
}
int main(void)
{
char str[30];
int ch;
printf("文字列を入力\n"); /* ----この文字列を入力したあとに、Ctrl+Zを押すと、逆から表示
で反対から、文字列が表示----*/
while (1) {
ch=getchar();
if (ch==EOF) break;
}
printf("逆から表示");
put_rstring(str);
puts("です。");
return(0);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
char* を渡したとき、不適切なP...
-
C言語のfor文です。 繰り返しの...
-
絶対パスからのファイル名の切...
-
干支のプログラム
-
配列をnビットシフトする
-
charでの計算?
-
文字列からバイナリ変換
-
fgetsなどのときのstdinのバッ...
-
CStringをwchar_tに変換したい
-
3桁区切(コンマ)記号をつけ...
-
ftoa の作り方
-
'const char *' 型は 'char *' ...
-
ソースコードエラー
-
間接操作のレベルとは
-
C++で16進数の文字コードから文...
-
C言語のポインターで詰まっている
-
C言語の入力した文字を反転させ...
-
charからLPTSTRへの変換方法
-
テキストデータをそのままバイ...
-
2÷3などの余りについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
CStringをwchar_tに変換したい
-
charでの計算?
-
文字列から空白を取り除きたい...
-
charからLPTSTRへの変換方法
-
'const char *' 型は 'char *' ...
-
テキストデータをそのままバイ...
-
配列をnビットシフトする
-
半角カナ→16進
-
double型の値をchar配列に変換...
-
sprintfに同じ変数は使えるか
-
ファイル名である文字列からbas...
-
ネットワークにつながっている...
-
ftoa の作り方
-
間接操作のレベルとは
-
型変換
-
C言語です
-
C言語のfor文です。 繰り返しの...
-
Win32APIでのエディットボック...
-
【C言語】文字型と整数型の違い
おすすめ情報