逆順表示

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

逆順表示

#1

投稿記事 by ma » 15年前

環境はvistaで、visualc++です。
char型の文字配列をキーボードで入力してうった文字列を逆順に表示するソースプログラムを
作りたいんですけど。どうすればいいですか?

kazuoni

Re:逆順表示

#2

投稿記事 by kazuoni » 15年前

若干問題文がおかしな気がしますが・・・
キーボードから入力した文字を逆順に出力するってことですかね?

文字を配列に読み込み、それを後ろから順に表示すればよいのではないでしょうか?

ma

Re:逆順表示

#3

投稿記事 by ma » 15年前

そのとおりで合っていると思うのですが、
そのやりかたも教えていただけないでしょうか?
初心者なのですみません。

たかぎ

Re:逆順表示

#4

投稿記事 by たかぎ » 15年前

C++なら
#include <iostream>
#include <algorithm>

int main()
{
  char s[/url] = "abcd";
  std::reverse(s + 0, s + 4);
  std::cout << s << std::endl;
}
でできます。

softya

Re:逆順表示

#5

投稿記事 by softya » 15年前

たぶん、C言語の質問ではないかと思いますので、テスト中のテンプレですがお答えください。
※ 規約のテンプレと微妙に違うことを書き添えておきます。
[1] 質問文
 [1.1] 自分が今行いたい事は何か
 [1.2] どのように取り組んだか(プログラムコードがある場合記載)
 [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
 [1.4] 今何がわからないのか、知りたいのか
[2] 環境
 [2.1] OS : Windows, Linux等々
 [2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々
 [2.3] 使用言語:C(90,99),C++,C#,VB,JAVA等々詳細にお願いします。
[3] その他
 ・どの程度C言語を理解しているか。言語を勉強してからの期間や自分で思う習得レベル(3ヶ月。初心者)
 ・ライブラリを使っている場合は何を使っているか
これ以外に言語の機能として使ってはいけないものがあれば、お書き添えください。
ポインタは、まだ習っていないので避けてくださいなど。

ma

Re:逆順表示

#6

投稿記事 by ma » 15年前

え~と、たぶんprintfとscanfを使ってデバックした時にキーボードでうった文字列を逆に表示
したいんですけど…
ちなみに初めて3カ月です。

#include <stdio.h>
int main(void)
{
char aa[100];
{
printf("99文字以下で文字列を入力してください。");
scanf("%s", aa);
printf("入力された文字列は%sで,", aa);
}

っていうところまでやったんですけど、この後にprintfを使って逆順に表示したいです。
本当に分かりにくい説明ですみません。m(__)m

kazuoni

Re:逆順表示

#7

投稿記事 by kazuoni » 15年前

関数strlenで文字列の長さが分かれば、いけますよね。
char str[3] = {a,b,c}
strlen(str) = 3
str[2]→str[1]→str[0]

たかぎ

Re:逆順表示

#8

投稿記事 by たかぎ » 15年前

あとはこんな方法でしょうか?
void print_reverse(const char *s)
{
  if (*s != '\0')
  {
    print_reverse(s + 1);
    printf("%c", *s);
  }
}
C言語歴3ヶ月だと、再帰呼び出しは習得したかしないか、ギリギリのところかと思います。

non

Re:逆順表示

#9

投稿記事 by non » 15年前

次のことにお答え下さい。
特に学校の課題なら、何を使っていいのかが重要です。

1 ポインタを習ったのか否か?

2 逆順にするのは配列の中身ではないのか?表示さえ逆順ならいいのか?

ma

Re:逆順表示

#10

投稿記事 by ma » 15年前

ポイントは習っていません。
逆順にするのは、
#include <stdio.h>
int main(void)
{
char aa[100];
{
printf("99文字以下で文字列を入力してください。");
scanf("%s", aa);
printf("入力された文字列は%sで,", aa);
}

っていうソースプログラムをデバッグしたときに例えばabcdefとうったときに
fedcbaってでるようなソースプログラムをこのあとにうちたいです。

softya

Re:逆順表示

#11

投稿記事 by softya » 15年前

strlen()と配列の参照、forループ、printfでの文字の表示が分かれば組めると思います。
これらの内で使い方が分からないものはありますか?

ma

Re:逆順表示

#12

投稿記事 by ma » 15年前

すみません始めたばかりなので、

int main(void)
{
char aa[100];
{
printf("99文字以下で文字列を入力してください。");
scanf("%s", aa);
printf("入力された文字列は%sで,", aa);
}

っていうプログラムの後にどんなプログラムをうてばいいのか教えてもらえませんか。

たかぎ

Re:逆順表示

#13

投稿記事 by たかぎ » 15年前

> っていうプログラムの後にどんなプログラムをうてばいいのか教えてもらえませんか。

それは自分で考えるべきことです。

ヒント:後だけではダメです。前にも何らかのコードが必要です。

ma

Re:逆順表示

#14

投稿記事 by ma » 15年前

できました~

すずめ

Re:逆順表示

#15

投稿記事 by すずめ » 15年前

本当にできたんですか?

できなかったんなら ギブアップって書いたほうが良いですよ

int main(void)
{
char aa[100];
{ <= これはおかしくないですか?
printf("99文字以下で文字列を入力してください。");
scanf("%s", aa);
printf("入力された文字列は%sで,", aa);
}

char aa[100];の次の行に'{'があったらエラーが出ると思うんですが?

もっともっと粘らないと正解は教えてもらえないですよ

たかぎ

Re:逆順表示

#16

投稿記事 by たかぎ » 15年前

> char aa[100];の次の行に'{'があったらエラーが出ると思うんですが?

そんなことはありません。

すずめ

Re:逆順表示

#17

投稿記事 by すずめ » 15年前

大変失礼しました。

#include <stdio.h>
int main(void)
{
char aa[100];
{
printf("99文字以下で文字列を入力してください。");
scanf("%s", aa);
printf("入力された文字列は%sで,", aa);
}

っていうソースプログラムをデバッグしたときに

って書いてあったので、デバックできないんじゃないかと
勘違いしました。
'{' と '}'が対応していないとおもったんですが。

質問者は初心者で始めたばかりということで、
私も独学ですがネットでいろいろなC言語講座で勉強させてもらいましたが、
char aa[100]; の次の行に突然 '{' が出てくるようなことは
はじめてだったものですから。
{ は、ないほうがいいとおもったのは私だけでしたか。

専門家の高木さんが言うんですから、間違った指摘をしたことを
お詫びします。

non

Re:逆順表示

#18

投稿記事 by non » 15年前

対応していないのはまだ、途中だから。
>{ は、ないほうがいいとおもったのは私だけでしたか。
ない方がいいと思いますよ。エラーではないだけで。

すずめ

Re:逆順表示

#19

投稿記事 by すずめ » 15年前

#include <stdio.h> 
int main(void) 
{ 
	char aa[100]; 
	{ 
		printf("99文字以下で文字列を入力してください。"); 
		scanf("%s", aa); 
		printf("入力された文字列は%sで,", aa); 
	}
}
確かにこれならOKですね。
勉強になりました。

シノニム

C++エラーについて質問です

#20

投稿記事 by シノニム » 15年前

こんばんわ。いつもお世話になってます

今回は発生したエラーについてお聞きしたいと思います
いつものようにVisual C++でプログラミングをしていたんですが、デバッグなしで実行した際に、

■fatall error LNK 1104 : ファイル・・・.exeを開くことができません

というエラーが発生しました。このエラーは自分の見解だと、すでに実行しているにもかかわらず新たに実行した場合に起こるエラー、だと思っていました。

しかしながらプロジェクトを実行している気配はなく、困ってリビルドしてみたところ、

■ファイル・・・.exeを削除することができませんでした。このファイルが他のプロセスによって使用されていないこと、または書き込み禁止になっていないことを確認してください

というエラーが・・・2つも出ました

とくに設定などをいじった覚えはなく、困っています
どなたかお力添えをお願いします

OS : Windows XP

DVDM

Re:C++エラーについて質問です

#21

投稿記事 by DVDM » 15年前

>>シノニムさん
タスクマネージャーを開き、「プロセス」タブの中に
シノニムさんが制作しておられるアプリケーションの名前はないでしょうか?
あるのであれば、その名前をクリックしてプロセスの終了を押し、
再度ビルドなりすると多分大丈夫なはずです。

シノニム

Re:C++エラーについて質問です

#22

投稿記事 by シノニム » 15年前

>>DVDMさん
なんとこんなところに・・・お陰でがっつり解決しました!
ありがとうございました!

閉鎖

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