如果我想用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_i
与atom_0
,atom_1
,...,atom_4
进行比较。
我该怎么办?
答案 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
}
}