利用字符串指针打印字符 – 整数组合

我有C函数,它将字符串指针作为参数。 此函数返回为指针指向的符号。 我想根据要求生成=多个符号。 假设,我家里有四扇门。 我想给不同的门提供不同的名字,比如d1,d2,d3.... 在这种情况下,我想创建一个指向字符串和整数的字符串指针,这样我就可以得到只有数值不同的符号。 这有助于我对看到字符串值的符号进行分类。 我想知道如何声明一个字符串指针,以便我可以创建一个我上面提到的符号。

[编辑]

我会尽力说清楚。

我有两个指针的数组

 const char *test[] ={"a","12345"} 

我想把指针指向a和1以及a和2 ……等等。 有没有办法做到这一点?

既然这个问题很模糊,那么又是另一个问题:

 #include  int main(int argc, char *argv) { const char *test[] = { "a", "12345" }; int i, j; for (i = 0; test[0][i] != 0; ++i) for (j = 0; test[1][j] != 0; ++j) printf("%c%c\n", test[0][i], test[1][j]); return 0; } 

输出:

 a1 a2 a3 a4 a5 

目前尚不清楚,但我认为您希望能够访问各个角色。 这是你想要的?

 #include  int main() { int i; char* name[] = {"a1","b2","c3"}; for(i=0;i<3;i++) printf("%s = %c %c\n",name[i],name[i][0],name[i][1]); } 

输出:

 a1 = a 1 b2 = b 2 c3 = c 3 

字符串是指向字符的指针,因此您不能指向整数。 您可以进行一些转换工作,但这似乎不适合您的问题。 你需要的是一个结构。

实现你的例子:

 struct Doors { int num; char sym; } d1, d2, d3; d1.sym = 'd'; d1.num = 1; d2.sym = 'd'; d2.num = 2; d3.sym = 'd'; d3.num = 3; 

编辑

我的解决方案被修改为第二个示例的实现:

 struct Doors { int * nums; const char * sym; } d; int n = 3; // Amount of doors. d.nums = (int *) malloc(n * sizeof(int)); // Memory for int array of n elements. if (d.nums == 0) { /* Memory could not be allocated. */ } else { d.sym = "d"; for (int i = 0; i < n; ++i) { d.nums[i] = i + 1; } // d -> { "d", [ 1, 2, 3 ] } free(d.nums); // Free the allocated memory. }