ここから本文です

アルファベットを入力して文字列に含まれるアルファベット、1文字ずつの文字数をカ...

アバター

ID非公開さん

2018/8/600:49:26

アルファベットを入力して文字列に含まれるアルファベット、1文字ずつの文字数をカウントするプログラミングを教えて下さい。途中まではできたのですがわかりません。どうかお願いします。

閲覧数:
102
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

mug********さん

2018/8/912:31:01

アスキーコード限定で、2バイト文字は含まない前提ならば。

char text[0xFF] ; //調べる文字列
int counter [26] ={0}; //各アルファベットの文字数(配列の要素0がA要素25がZ)

int i=0;
while( text[i++] != '\0' ){

//大文字を調べる
if( text[i]>=65 && text[i]<=90 )
counter [text[i]-65]++;

//小文字を調べる
if( text[i]>=97 && text[i]<=122 )
counter [text[i]-122]++;

}

これで各アルファベットが何個出てくるかがわかります。
文字も内部では数値として保存されており、アスキーコードは大文字が65からAで90がZになります。
小文字は97からaで122がzになります。
この範囲であればアルファベットに該当します。
例えば69であれば65から4進んでいるので Aから4進んだEになります。
大文字と小文字を別の変数にすればそれぞれを分けて数える事もできます。

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

nor********さん

2018/8/606:10:11

途中までの結果を提示してみてください。
大文字と小文字は区別するのか。
数字や記号、マルチバイト文字が入力される可能性はありますか?

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる