※ ChatGPTを利用し、要約された質問です(原文:複数条件でのカウント)
複数条件でのカウントを行う方法
このQ&Aのポイント
C言語を使用して、複数条件でのカウントを行う方法について説明します。
特定のファイルから複数の文字列を検索し、出現回数をカウントするプログラムです。
検索対象のファイル名と複数の検索文字列を指定することで、それぞれの文字列の出現回数を求めることができます。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FALSE 0
#define TRUE 1
//ファイル検索
main () {
FILE *fp; //ファイルポインタ
char filename[256]; //ファイル名
char key[128]; //検索文字列
char c;
int keylen; //検索文字列の長さ
int i = 0; //検索文字列の位置
int search = FALSE; //検索中フラグ
int count = 0; //検索文字列出現回数
//検索対象ファイル名と検索文字列を決定
printf("ファイル名を入力してください > ");
scanf ("%s", filename);
printf("検索文字列 > ");
scanf("%s", key);
keylen = strlen(key);
//ファイルオープン
if((fp = fopen(filename, "r")) == NULL) {
printf("ファイルオープンエラー\n");
exit(1);
}
//ファイル読み込み
while((c = fgetc(fp)) != EOF){
if(search) { //検索中
//検索文字列に一致しない文字が現れた
if(c !=key[i]) { search = FALSE; i = 0; }
else { i++; }
}else { //検索中ではない
if(c == key[i]) { search = TRUE; i++; }
}
//検索文字列と全て一致した場合
if(keylen == i)
{ count++; i = 0;
search = FALSE; }
}
fclose(fp);
printf("出現回数 %d\n", count);
return 0;
}
というものを作りましたが、検索文字列を二つ指定したい場合はコンパイルの画面でどのように入力すればいいのでしょう