C - 结构数组



im 有一个 txt 文件

abc=123 def=456 ...

我像这样定义我的结构:

 typedef struct rule {
    char* old;
    char* new;
 }Rule;

我已经通过函数计算了这些规则的

int count_rules((;

现在我在另一个函数中调用这个函数,同时制作规则字典

void make_dic(){
 ammount_rules = count_rules();
 //here goes the problem
 Rule *dictionary = malloc(ammount_rules * sizeof(Rule));
}

我想扫描另一个 txt 并用新的替换旧的,所以我想用简单的命令访问每个双胞胎

for (i=0; i<ammount_rules;i++){
  if ( (string_in_text) == (dictionary.old[i]) )
  {
  printf("%s" dictionary.new[i]);
  }
}

你的malloc似乎很好。它使用ammount_rules元素分配Rule数组。

但是,您使用dictionary的方式似乎是错误的。

dictionary.old[i]  // wrong
dictionary[i].old  // correct
dictionary.new[i]  // wrong
dictionary[i].new  // correct

顺便说一句:请注意,您正在比较指针 - 而不是字符串。使用 strcmp 比较字符串。

相关内容

  • 没有找到相关文章

最新更新