在c中填充一个字符串数组

时间:2017-11-05 14:18:07

标签: c arrays string function


我有一个声明的数组:

char *tableHeuresTests[NBTEST];

也是一个填充我阵列的函数 这是我的功能:

FILE *f = NULL; // représente un fichier en C
char tab[TAILLE]; // Chaîne de caractères qui nous servira pour la lecture ligne par ligne du fichier (~buffer de lecture)
int i = 0; // index du tableau

// TODO : Ouverture du du fichier HeuresTests.txt
f = fopen("HeuresTests.txt", "r");

// TODO :  Vérifier si le fichier a bien été ouvert. Sinon, envoyer une erreur et sortir du programme
if (!f)
{
   printf("Le fichier HeuresTests.txt n'a pas pu être lu !");
   fclose(f);
   exit(1);
}

// TODO : Lecture de toute les lignes jusqu'à la fin de fichier
while (fgets(tab, TAILLE, f) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
{
    char res[TAILLE];
    if(tab[strlen(tab) - 1] == '\n')
    {
        int j = 0;
        for(j = 0; j < strlen(tab) - 1; j++){
            if(tab[j] != '\n' && tab[j] != ' ')
                res[j] = tab[j];
        }
        res[strlen(tab) - 1] = '\0';
    }
    else{
        strcpy(res, tab);
    }
    tableauDatesRetour[i] = res;
    printf("%s\n", tableauDatesRetour[i]);
    i++;
    strcpy(res, "");
}


// TODO : Fermer le fichier
fclose(f);

此外,还有以下定义:

void lireFichierDates(char **tableauDatesRetour);

此函数应该逐行读取文件,并填充数组(文件的每一行将添加到不同的索引,就好像数组是文件一样)。在将每一行添加到数组之前,我必须删除&#39; \ n&#39;在每一行的末尾。
最后你可以看到一个printf(),它可以帮助我查看我的数组 我这样做的原因是因为在调用函数之后,我尝试查看作为参数传递的数组,看看它的内容是否是我正在寻找的内容。
Here是结果

它有什么不同?我做错了吗?

0 个答案:

没有答案