文章の中のアルファベットの種類の出現頻度
をカウントするプログラムをつくっているのですが、
わかりません。
まずcpというポインタで動的メモリを確保し
そこの中に文章の全文字を格納するところまで
はできました。そして、cpを
ループカウンタで回して
aならa、bならbの数のカウントがしたいのですが、
そこの部分がよくわかりません。
まずchar kind_character[26];
とかにして、aからzまでを格納して
比べたいのです。問題はどうやって
aからz、AからZを格納するのか
わからないのです。
char kind_character[26]と比較して、
aからAならint number_of_A_to_Z[26]の0番目
の配列に数字を格納したいのです。
またaとAというのは、別に扱われるのでしょうか_
そして、あとはprintfでどうにか表示しようかと思っているのですが、、、
お願いします。
No.1ベストアンサー
- 回答日時:
こんにちは
難しく考えすぎていませんか?
とりあえずフィルタプログラムでサンプルを書いて見ました。
シフトJIS環境であれば、うまく動くと思います。
Aもaも同じとしてカウントしています。
また、2バイト文字は検査していません。
#include <stdio.h>
main()
{
int i ;
unsigned count[26] ;
for (i=0 ;i<26 ;i++){
count[i] = 0 ;
}
do {
i = getchar();
if ( i >= 'A' && i <= 'Z' ){
count[i-'A'] ++ ;
} else if ( i >= 'a' && i <= 'z' ){
count[i-'a'] ++ ;
} else if ( ( i >= 0x81 && i <= 0xa0 ) || ( i >= 0xe0 && i <= 0xfd ) ){
getchar();
}
} while ( i != EOF ) ;
for (i=0 ;i<26 ;i++){
printf("%c : %5d\t",'A'+i,count[i]);
}
}
No.3
- 回答日時:
とりあえず、下記のプログラムを見る為の参考程度に。
コンピュータ内部で文字を扱う場合、文字は文字コード(すなわち数値)で処理されます。
その為、別のコードで扱われる「a」と「A」は異なる物です。
実際の文字コードについては、参考URLのページ内にある、「JISローマ字(ASCII)・文字コード表」のところを参照するといいと思います。
尚、全角(「a」や「A」等)の場合は、また違うコードになりますので、ご注意下さい。
それから、amuro_78さんのやり方で考える場合、配列に a~z,A~Z の文字を初期値として設定する場合は、
char kind_character_s[]="abc~略~xyz"; //小文字
char kind_character_l[]="ABC~略~XYZ"; //大文字
とするといいと思います。
参考URL:http://www.ash.or.jp/code/unitbl1.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
- C言語・C++・C# 10人分の生徒の英語の点数{32,34,41,38,40,26,14,46,42,50} と数学の点 2 2022/05/26 21:31
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムによく出てくるst...
-
nullと""、\\0とEOFの違いにつ...
-
TCL言語で文字列検索方法を教え...
-
C#でstringをポインタとして渡す
-
C++で入力した文字列から数字を...
-
%dなどの違い
-
WSH(VBS)でJSONの文字列を読み...
-
16進数を2文字ずつ配列に格納し...
-
シリアル通信で0x00を送信した...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
構造体→文字列→構造体 をする方法
-
VBA-DLLの引数受け渡しについて
-
[C++]WCHARの1文字目しか表示で...
-
数字の入った配列をファイルへ...
-
VB6.0でのバイナリデータの扱い...
-
引用符と二重引用符
-
こんなことって可能なのですか...
-
char型配列の最大要素数
-
C言語の課題で困っています;
-
sprintf関数について教えて下さ...
おすすめ情報