Мой код может рассчитывать вхождения строки в текстовом файле, но он чувствителен к регистру. Как я могу добавить другую опцию, которая делает то же самое, но без учета регистра?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define size 1000
int main(int argc, char *argv []){
int i,j;
FILE *fp;
char argtxt[]=".txt";
char txtfile[size]; /*Char array that holds .txt file*/
size_t br;
int stringcount=0, stringcount2=0;
char cmdline[size];
int l1=0,l2=0;
for(i=0; i<argc; i++){/*loop thru all arguments*/
if(argc > 1 && strstr(argv[i],argtxt)!=NULL){/*if argument exists and contains .txt, then copy that argument to a char array*/
fp=fopen(argv[i],"r");
br=fread(txtfile, 1,sizeof(txtfile), fp);
printf("%s:\n", argv[i]);
printf(txtfile);
}
}
//feature 1
l1=strlen(txtfile);
l2=strlen(argv[2]);
if(argv[2]!=NULL){
strcpy(cmdline, argv[2]);
}
if(strcmp(argv[1],"-c")==0){
for(i=0; i< l1;){
j=0;
stringcount=0;
while((txtfile[i]==cmdline[j])){
stringcount++;
i++;
j++;
}
if(stringcount==l2){
stringcount2++;
stringcount=0;
}
else{
i++;
}
}
Ожидаемый результат:
Если моя команда ./program -ci "Это список слов." test.txt,
выход должен быть 9
Это содержимое test.txt:
THis is a list of words.
THis is a list of words.as
THis is a list of words.as
as This is a list of words.
as This is a list of words.
This is a list of words.
as This is a list of words.
This is a list of words.
as This is a list of words.