• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドライン引数を使った、英小文字個数のカウントについて(C))

C言語でコマンドライン引数を使用した英小文字個数のカウント

このQ&Aのポイント
  • C言語でコマンドライン引数を使用して英小文字個数のカウントを行う方法について解説します。
  • コマンドライン引数から与えられた文字列に含まれる英小文字の個数を、配列を使用してカウントする方法を紹介します。
  • C言語のプログラムを使って、コマンドライン引数から与えられた文字列に含まれる英小文字の個数を数えることができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★基本ですのでネットで調べても多分見つかりませんよ。 ・もう既に場所は分かっていますね。 >範囲外アクセスで >int count[26] と宣言しておきながら >for(countmoji = 0x61; countmoji <= 0x7a;countmoji++) > count[countmoji] = 0; >}  この場所の1箇所を編集します。  間違い⇒count[countmoji] = 0;  正しい⇒count[countmoji - 0x61] = 0;  とします。あと同様に参照部分の  間違い⇒count[countmoji]  正しい⇒count[countmoji - 0x61]  とします。 ・単純に 0x61 を変数 countmoji から引くだけでシフトして宣言した count[0] ~ count[25]  の範囲に収まります。 その他: ・0x61、0x7a は文字定数のはずですから  0x61⇒'a'  0x7a⇒'z'  と分かりやすく記述します。16進数でもよいが意味が分かるようにすべきです。 ・それと while 文の最初に i=0 としていて while 文の内部で i++ しているので for 文で  書き直した方が見やすい気がしますよ。  for ( i = 0 ; argv[1][i] != '\0' ; i++ ){   countmoji = argv[1][i];   count[countmoji - 'a']++; ←0x61(a)をここでも引きます。  } ・もう一つ printf 関数の書式制御文字で %C は何でしょうか。  文字指定では %c の小文字ですが、Linux Fedora Core 6 の拡張指定ですかね。確認を。 最後に: ・『間違えて締め切ってしまいました。』…締め切るときにそのめー時をよく読んでから  操作を進めて下さい。3ステップあるのでそうめったに間違わないと思いますけど…。 ・あっ、onarav さんは今日登録したのですか。このQ&Aの利用方法(ルール)をもう一度  確認などをして下さい。→下の『参考URL』をどうぞ。 ・以上。参考に! 参考質問: ・http://oshiete1.goo.ne.jp/qa2891826.html→『コマンドラインに入力されている文字列の1文字を出力』 ・http://oshiete1.goo.ne.jp/qa2947615.html→『コマンドとコマンドラインとコマンドラインオプションの違いを教えてください。』

参考URL:
http://oshiete.goo.ne.jp/ask/howto/quest_close.html
onarav
質問者

お礼

感動しました。 ありがとうございます。 泣きそうです。

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

関連するQ&A