如何编写从迭代更改为迭代的字符串?

时间:2018-04-25 15:03:02

标签: c string

如果我想用for循环(例如)写下一些内容:

for(int i=0;i<5;i++) {
  char* str_3="atom_3";
  if(strcmp(str_3,"atom_i")!=0){  // I know that it's not true to get it by 
                                  //this line.  
     printf("FALSE");
  }
}

我希望生效,以便将str_iatom_0atom_1,...,atom_4进行比较。
我该怎么办?

1 个答案:

答案 0 :(得分:0)

  

如何编写从迭代变为迭代的字符串?
  ...以使str_i与“atom_0”,“atom_1”,......,“atom_4”进行比较。

在每次迭代中构造比较字符串。

// This is  not elegant, yet meets OP goals.
for(int i=0;i<5;i++) {
  char atom_i[30];
  sprintf(atom_i, "atom_%d", i);
  if(strcmp(str_i, atom_i)!=0){
     printf("FALSE");
  }
}

然而,更好的方法是扫描str_i并避免迭代。

int d = 0;
char ch;  // Use to look for extra text
if (sscanf(str_i, "atom_%d%c", &d, &ch) == 1) {
  if (d >= 0 && d < 5) {
    ; // do something with str_i
  }
}