C语言字符串数组问题:将文件中的多行文本存储到数组中

各位好,我最近在学习C语言处理字符串的相关知识,有个问题一直没解决,下望各位帮我想一下解决方法。

文件lines.txt,里面有如下内容:

cat dog
duck rabbit
bird cow
mouse snake

每行两个单词,中间以空格隔开。

我想把这个文件的内容存储到数组中,要求如下:

char* line1[] = {"cat", "dog"};
char* line2[] = {"duck", "rabbit"};
char* line3[] = {"bird", "cow"};
char* line4[] = {"mouse", "snake"}

char** all = {line1, line2, line};

我现在遇到的问题是:可以读取到每一行中的两个词,存储到 char*数组中,但是无法将该数组存储到char** all中,症状是all中有四个mouse。

各位能否提供一下解决方法?

谢谢!

你定义的数组类型的指针,但是里面存储的不是指针,而是字符串,如果只是为了存储字符串,直接定义数组进行,并且数组名就是这个数组的指针。