C ファイル内の文字列の頻度
この C プログラムは、テキストファイル内で検索されたすべての文字の出現回数をカウントします。例:
テキストファイルには、"私はプログラマーです".
探している文字: j, s, p, e.
出現回数:
j : 1
s: 1
u: 3
E: 2
#include
#include
void rech_caracteres(char characters[],int size)
{
//ファイルを読み取りモードで開く
FILE *file = fopen("C:/test.txt","r");
char c;
//繰り返しを保存する配列
int repeat[size];
//0
に初期化 for(int i = 0 ; i < size; i++)
repeat[i]=0;
//ファイルが存在する場合
if(file)
{
//ファイルの末尾でない限り
//文字を読み込みます
while((c=(char)getc(file))!=EOF)
{
//読み取った文字は
//検索されたすべての文字
for(int i = 0 ; i < size; i++)
{
//等しい場合はインクリメント
//文字に関連付けられたカウンタ
if(c==characters[i])
repeat[i]++;
}
}
//ファイルを閉じる
fclose(file);
//display
printf("繰り返し回数:\n");
for(int i = 0 ; i < size; i++)
printf("\t%c : %d\n",characters[i],repeat[i]);
}
else
printf("\aERROR: ファイルを開くことができません: %s", file);
}
int main()
{
char string[]="プログラマー";
// sizeof(string)-1: 配列のサイズ
// ('\0' をカウントしない場合は -1)
// '\0' は配列の末尾を示します
rech_caracteres(string,sizeof(string)-1);
system("pause");
}