- ベストアンサー
C言語とCGIでWebおみくじの製作方法
- C言語とCGIを使ったWebおみくじの製作方法について紹介します。
- 入力フォームから受け取った文字列を整数に変換し、計算して結果を返すことで20種類のおみくじ結果を表示します。
- C言語に対するCGIの資料が少ないため、理解が難しい部分もありますが、この記事で詳しく解説します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
> 生年月日のようにすでに数値であるものはそのまま使いたい 文字列(数字)から整数型への変換は,strtol や sscanf などが使えます。 その前に,生年月日の部分を切り出す処理は必要です。 しかし,「ランダムだと一日の中でやり直しができてしまうからつまらない」 のを回避することだけが目的なら,氏名や,生年月日,性別の意味を解釈する必要はないので, 受け取った文字列をそのまま,簡単なハッシュ関数に突っ込んでしまってもいいでしょう。 各文字のコードを全部足して,最後に 20 で割った余りを取るとか,そんなんで十分やと思います。
その他の回答 (2)
- php504
- ベストアンサー率42% (926/2160)
C用のCGIライブラリです http://www.boutell.com/cgic/ フォームからのデータ受け取りに使えると思います
お礼
ありがとうございます! 助かります。
> フォームに入力されたデータをcgiプログラムでどう受けるのか METHOD=GET の場合には,環境変数 QUERY_STRING に格納されています。 METHOD=POST の場合には,標準入力に渡されます。 この辺は,C でも Perl でも変わりません。 http://www.tohoho-web.com/wwwcgi3.htm C で環境変数を読むには,getenv 関数。 標準入力からの読み取りは,stdin に対して fgets したり,getchar を使ったり,お好みで。 http://www.bohyoh.com/CandCPP/C/Library/hindex.html > 受け取った文字列をどうやって整数に変換するのか ここは要求仕様しだいでですね。 例えば,菅直人 1946年10月10日 男,だった場合,どう変換したいですか? # おみくじなら,ランダムでいいような気もしますが・・・
お礼
ご回答ありがとうございます! また、細かな説明とわざわざURLまでつけてくださってありがとうございます。 参考にさせていただきます。 >受け取った文字列をどうやって整数に変換するのかについて。 できるのであれば生年月日のようにすでに数値であるものはそのまま使いたいですね。 また性別の男、女はラジオボタンにしようと考えているので、男であれば1、女であれば0のようにしたいです。 >おみくじなら、ランダムでいいような気がしますが・・・ 私も最初はそう考えていたのですが、ゼミの教授にランダムだと一日の中でやり直しができてしまうからつまらないと言われてしまったので・・・。 ちなみに日によって結果が変わるようにCGIプログラムで当日の日付をとってくるようにしています。
お礼
たしかにそのやり方でできるならその方が簡単そうですね! ただハッシュ関数というのが初めて聞く言葉なのでその辺は調べてみます。 本当に助かりました。ありがとうございます!