我试图将字符串值分配给字符数组的数组

时间:2014-02-28 01:52:20

标签: c arrays character-arrays

我正在尝试将字符串值(char *)分配给char数组数组中的元素。我的问题是,我可以完成赋值,但它将最后一个读取值放在每个元素中,而不是我想要的特定元素。我的代码如下所示。

int   wordListIterator = 0;

int main(int argc, char **argv) {

    FILE *fp = fopen(argv[1], "r");

    int lineCount = 0;

    char line[80];
    while (fgets(line, sizeof(line), fp) != 0) {
    parseLine(line, strlen(line), lineCount);
    lineCount++;
    }
    fclose(fp);
} // end main

void parseLine(char * myLine, int stringLength, int myLineCount) {

    if (isspace(myLine[1])) {
        int i;
    for (i = 0; i < stringLength; i++) {
        Puzzle[myLineCount][i] = myLine[i];
    }

} else
if (isspace(myLine[1]) == 0) {
     Wordlist[wordListIterator] = myLine;
    wordListIterator++;
}
}

我的输出将使Wordlist []充满最后读取的单词。这是一个单词搜索拼图。 Puzzle [] []作业很有效,所以我不明白我哪里出错了。

1 个答案:

答案 0 :(得分:1)

你需要使用strdup来复制你的行,否则你每次都会覆盖这行,而你的每一个值都将成为指向同一个字符串的指针。该字符串将包含最后一个输入,因此所有这些都将指向最后一个输入。

您的“拼图”作业无效,因为您一次只复制一个实际角色。