• 締切済み

C言語 ワイルドカード

CUI環境でのワイルドカードのプログラムを考えています。 関数の再帰呼出しを使うと思うのですが、どのようなプログラムになるのでしょうか?もしくは、再帰呼び出しを使わずにワイルドカードを判別するプログラムが作れるのであれば、それはどのようになるのでしょうか?

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

他の方もおっしゃっるように、「ワイルドカード」といっても何のことかサッパリ分かりません。 CUIでできる↓のことかもしれませんし。 http://www.square-enix.com/jp/archive/wildcard/ 第三者に理解できる文章表現を練習することは、意外にプログラミングの上達にもつながりますよ。

ikepan
質問者

お礼

ご回答ありがとうございます。 うまく文章表現できずに申し訳ありません。 そして私の質問は回答で記述されているURLのワイルドカードではありません。 色々と調べてみたところ、解決いたしました。 ANo1~4さん、どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

CUI環境といっても, OS やシェルに依存して動作がかわるので, これだけだと「何をしたいのか」がわからないなぁ. どんなものをお使い?

ikepan
質問者

補足

説明足らずで失礼いたしました。 OSはWindowsXPです。シェルについて、あまりPCに詳しくないので何の事か私には分かりません(すみません)。開発ツールはVisual C++2005を使っていますが、この事と関係ありますか?

全文を見る
すると、全ての回答が全文表示されます。
noname#39970
noname#39970
回答No.2

参考 http://www.google.co.jp/search?hl=ja&lr=lang_ja&q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%20%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0 MS-DOSのように狭義的な「*」と「?」のみならただのループで処理できる。 しかしCUIではシェルがワイルドカードを分解してから渡してしまうのでその辺りを考慮しなければならない

ikepan
質問者

お礼

ご回答ありがとうございます。 参考のURLをよく調べてみます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

「ワイルドカードのプログラム」ってなんですか?

ikepan
質問者

補足

説明足らずで失礼いたしました。 「?」…任意の一文字 「*」…任意の長さの任意の文字 このワイルドカードを使って文字を調べられるプログラムです。 例えば複数の人名が書かれている文字列から、2文字目に「中」という文字を含む名前を見つけ出す場合、「?中*」と入力すれば見つけられるというプログラムです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【C言語】再帰が時間がかかる理由について

    再帰のプログラムがなぜ時間がかかるのかを詳しく調べています。 アセンブリレベルで見ると、 callに時間がかかるのか?それともpop命令?それとも退避? 結局、よく分からないまま、 Google検索して調べています。(まだよくわかってません。) 再帰呼び出しのデメリットは、 スタック領域を大量に消費する、関数呼び出しのオーバーヘッドであること。 この事実はわかりました。 しかしながら、 オーバーヘッドとは具体的に何なのか これを調べています。 どなたか、良いサイト・書籍を知らないでしょうか。 教えてください。

  • c言語の問題

    c言語のプログラム 「1」が3枚、「3」が3枚、「5」が3枚、「7」が4枚、「9」が5枚で合計18枚のカードがある。このカードを並べて6桁の数を3個作り、その3個の数の総和が「1234567」となるカードの組み合わせをすべて求めたいのですがどうすればよいか全然分かりません。 6桁の数を配列で表現し、和を求めるときに1の位から上位の桁へ順番に和が一致しているかチェックするのを、再帰呼び出しででしたいです。

  • C言語のプログラムについて

    C言語のプログラムについて 3桁の自然数の中で、自分自身を含めた約数が奇数になるものがいくつあるかを求めるプログラムを作りたいのですが、swich文を使って、6通りの方法で出そうとしていまして、 while 文、 for文、 do while文に加え、 for文のを、1つの関数として独立させたもの、 さらに、for文のを重ループ部分のそれぞれのループに対応して、2つの関数として独立させたもの、 そして、この2つの関数のどちらともをループを用いずに再帰呼び出しを用いたもの の6通りで出したいのですが、swich文を使うところは自力でできたのですが、あとの6つそれぞれのプログラムの組み方がわかりません。 教えていただけないでしょうか?ややこしい書き方をしてすいません・・・。

  • c言語の関数定義について

    次の関数定義を考える. int f(int x) {if (x > 0) {return x * f(x-1);} else {return 1;} } この関数f と働き(すなわち,引数と戻り値の関係)が同じで再帰呼出(recursive call) を使わない関数g をC で定義せよ.ただし,オーバーフロー(overflow) については考慮しなくてよい. ”この関数f と働き(すなわち,引数と戻り値の関係)が同じで再帰呼出(recursive call) を使わない関数g をC で定義せよ”って理解できません、どのように定義したいいか、ご教授お願いします。

  • フィボナッチ数列 プログラミング C言語

    「フィボナッチ数を次の手順で求めるプログラムfib2.cを作成。 再帰関数 int fib(int n)を定義し,再帰呼出しによりfib(n)の値を求める。n=30までのフィボナッチ数を求めて表示せよ。 またどのnの値まで求めるか?」という問題です。 で下記のように作りましたが再帰関数をつかわなかったので再提出になってしまいました。 再帰関数はどうやって使うのでしょうか。 今回の場合はどの部分が再帰関数になるのでしょうか? おねがいします。 #include<stdio.h> main() { int fib[100], i; fib[0] = 0; fib[1] = 1; printf("F0=0\nF1=1\n"); for(i=2; i<=30; i++) { fib[i] = fib[i-1]+fib[i-2]; printf("F%d=%d\n",i, fib[i]); } }

  • c言語のプログラム

    「1」が3枚、「3」が3枚、「5」が3枚、「7」が4枚、「9」が5枚で合計18枚のカードがある。このカードを並べて6桁の数を3個作り、その3個の数の総和が「1234567」となるカードの組み合わせをすべて求めたいのですがどうすればよいか全然分かりません。 6桁の数を配列で表現し、和を求めるときに1の位から上位の桁へ順番に和が一致しているかチェックするのを、再帰呼び出しででしたいです。

  • c言語プログラミング

    main関数のほかに定義関数AとBを作ったのですが、 関数AからBを呼び出すとプログラムが動きません。 定義関数同士での呼び出しはできないのですか? できるのなら方法を教えてください。

  • C++でforや再帰関数を使わずに、総当りする方法はありますか?

    C++等で、forを使わず、再帰関数を使わずに多量のループで総当りする方法はありますでしょうか? 自己末尾再帰関数というのがネットで出てきますが、C言語系では使えないみたいです。 再帰関数で変数を全てスタティックにしても、関数の多重呼び出しで容量を食ってプログラムが動かないほどの計算をこなす必要があるのですが、こういった多数の桁のやり方になれておらず、先が見えません… また、全部をforにするのも、桁が大きすぎて問題があります。 どなたかご教授くださいますと幸いです。

  • 再帰呼びだし

    再帰呼びだし 問題1 再帰呼び出しを用いてint型の配列({-9、8、-7、6、5、4、1、3、6、9、2、-14})の最小値を求めて出力するプログラムを作成せよ。関数名はmin_of_arrayとする。 問題2 同じく再帰呼び出しを用いてint型の配列({3、4、1、5、2})を小さい方から順番に求めて出力するプログラムを作成せよ。 再帰呼び出しが苦手で、じっくり解いていこうと思ったのですが、他の課題もあって、もう提出期限いっぱいいっぱいなので載せました。 どうかよろしくお願いします。

  • 再帰呼び出しを使いますか?

    趣味でプログラムをかじる程度なのですが、今まで自分はプログラムを作っていて再帰呼び出しを使ったことがありませんが、みなさんは良く使うのでしょうか? なかなか再帰呼び出しを考えるのが難しく自分のプログラムで適用すると良いところなど思い浮かびません。 再帰呼び出しをすると何か利点とかあるのでしょうか? 再帰呼び出しで無いと作るのが難しいプログラムなど今までありましたか?あればどんな処理だったかなど教えてください。