从行分隔的文本文件创建字符串数组

时间:2017-03-02 00:11:23

标签: c

我已经提供了一个单词的txt文件,其中每行只有一个单词。我被要求将其读入一个字符串数组,其中数组的每个元素都是来自此txt文件的一行。我尝试了一些fgets的解决方案,但到目前为止还没有多少运气,任何建议都会受到高度赞赏?

我尝试过的解决方案之一就是:

char array[45440][20];
char copyToArray = fgets(array[r][20], 100000, inputFile);
for (int r = 0; r < fileLength; r++) {
    if(copyToArray != NULL) {
        strcpy(array[r][20], copyToArray);
    }
}

1 个答案:

答案 0 :(得分:0)

如果您已经知道预期的字符串数和最大字长,请使用:

char array[45440][20];
int n;
for (n = 0; n < 45440; n++) {
    if (scanf("%19[^\n]", array[n]) != 1)
        break;
    scanf("%*[^\n]);  /* skip the rest of the line if any */
    scanf("%*c);      /* skip the newline if any */
}

或者这个更简单的选择:

char array[45440][20];
int n, c, i;
for (n = 0; n < 45440; n++) {
    for (i = 0; (c = getchar()) != EOF && c != '\n';) {
        if (i < 19)
            array[n][i++] = '\0';
    }
    array[n][i] = '\0';
    if (c == EOF)
        break;
}