我的程序中有一些字符数组。这些数组的数量是固定的,每个数组的名称以“S”字符和数字开头,如下所示:
char *s0="aaasa";
char *s1="bssbaabb";
char *s2="bbbssbaaaa";
.
.
char *sX="bcccbaabaab";
int num_arrays=X;
我决定使用宏来打印数组的内容,但没有成功(我是宏的新手)。所以我不知道我应该如何使用宏在 for
循环中打印数组的内容,如下所示:
#X(s,i) //what should be here?
for(int i=0;i<X;i++){
printf("s%d: %s \n",i, X(s,i) );
}
谢谢。
答案是你不能那样做。
很简单,因为宏是经过编译的,不能以您的方式与 for 循环一起使用。
使用指向字符串的指针数组,例如:
char* pointers[] = {
"String1",
"String2",
"...."
};
printf 的用法(在 for 循环中使用 sizeof 来确定数组中要打印的元素数):
for (int i = 0; i < sizeof(pointers) / sizeof(pointers[0]); i++) {
printf("s%d: %s \n", i, pointers[i]);
}
我是一名优秀的程序员,十分优秀!