У меня есть функция, которая принимает имя файла (string), и я хочу иметь массив имен файлов (строк), чтобы проверить, было ли передано имя файла taht в массиве и если не добавить его в него. Вот что я получил до сих пор.Проверка строки в массиве строк в C
bool read_file(char * filename, bool warnings){
//Check to see if filename is in array files
static char * files[MAXFILES];
static int counter = 0;
for(int i=0;i<counter;i++){
if(strcmp(filename,files[i]) == 0){
fprintf(stdout, "Error\n");
return 0;
}
else{
files[counter]=filename;
counter++;
}
}
FILE * fp = fopen(filename,"r");
if(fp == NULL){
if(warnings){
fprintf(stderr, "Can't open the file %s\n",filename);
return 0;
}
else{
return 0;
}
}
else{
fclose(fp);
fp = NULL;
return 1;
}
}
По какой-то причине он не будет добавлять имена файлов в файлы [] любая помощь будет воспринята.
Цикл 'for' никогда не вводится, вы инициализируете' counter' '' 0' и используете 'i
Naveen
Почему «counter» и 'files' должны быть статическими? – Lundin