我正在读取一个文件,其中行中出现的第一个单词是我想要作为关键字的那个单词。
换句话说,我想把它们保存在一个chars(char* array[])数组中。
我遇到的问题是,当键在文件的另一行中重复时,所以我想将其他单词添加到数组的下一个位置。
我该怎么做呢?
FILE* file1 = fopen(name_file,"r");
if(!file1) return 1;
bst_t* bst = bst_create(strcmp,NULL);
if(!bst) return 1;
char* line = NULL;
size_t count = 0;
ssize_t read;
while((read = getline(&line,&count,file1)) > 0){
char** arr_line = split(line,' ');
char* key = arr_line[0];
char* value = arr_line[1];
if(!bst_find(bst,key)){
char** values = malloc(sizeof(char*));
values[0] = value;
bst_insert(bst,key,&values);
}
else{
///?
}
free_strv(arr_line);
}
free(line);
fclose(file1);
return 0;发布于 2018-06-19 22:18:49
您可以创建一个指针,每次添加到char*数组时都会递增,或者每次要添加更多字符串时,使用malloc创建一个新的字符串数组,并将所有内容复制到新数组中,同时将复制到所有新字符串中。
这实际上取决于您现有的代码以及它的行为方式。(否则我会说得更具体)
https://stackoverflow.com/questions/50930147
复制相似问题