В настоящее время я работаю над проектом, который читает строки из входного файла и сохраняет их в массиве.Когда он сохраняется в массиве, я хочу удалить пробелы, чтобы я мог сравнить строки в массиве с картами строк массива и проверить, все ли карты из входного файла есть.
Но в настоящее время я застрял в хранении новых строк без пробела в массиве и их распечатке.Он выводит первую строку REDA
, но после этого я получаю ошибку сегментации.
Буду также признателен, если кто-нибудь подскажет, как сравнить строки в массиве карт с массивом константи проверьте, все ли карты находятся в массиве.
Я надеюсь, что это правильный подход.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
const char * stringcard[] = { "REDA","RED2"
"RED3"
"RED4"
"RED5"
"RED6"
"RED7"
"RED8"
"RED9"
"RED10"
"REDJ"
"REDQ"
"REDK"
};
int main (int argc, char **argv) {
char *reds[13];
char * cardarray[13];
int i;
FILE *file = argc > 1 ? fopen (argv[1], "r") : stdin;
if (file == NULL)
return 1;
if(argc!=2) {
printf("[ERR]");
return 0;
}
for (i =0; i < 13; i++) {
reds[i] = malloc( 8);
fgets(reds[i], 8, file);
}
int i2 = 0;
for (i =0; i < 13; i++) {
printf ("%s", reds[i]);
}
for(i= 0; i<13; i++) {
char *p = strtok (reds[i], " ");
while (p != NULL)
{
cardarray[i2++] = p;
p = strtok (NULL, " ");
}
}
for (i =0; i < 13; i++) {
printf ("%s", cardarray[i]);
}
return 0;
}
Входной файл:
RED A
RED 2
RED 3
RED 4
RED 5
RED 6
RED 7
RED 8
RED 9
RED 10
RED J
RED Q
RED K