我有C函数,它将字符串指针作为参数。此函数返回为指针指向的符号。我想根据要求生成=多个符号。假设,我家里有四扇门。我想给 d1,d2,d3....
之类的不同门提供不同的名字。在这种情况下,我想创建一个指向字符串和整数的字符串指针,这样我就可以得到只有数值不同的符号。这有助于我对看到字符串值的符号进行分类。我想知道如何声明一个字符串指针,以便我可以创建一个我上面提到的符号。
[编辑]
我会尽力说清楚。
我有两个指针的数组
const char *test[] ={"a","12345"}
我想把指针指向a和1以及a和2 ......等等。有没有办法做到这一点?
答案 0 :(得分:3)
由于这个问题很模糊,所以还有另外一个问题:
#include <stdio.h>
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
答案 1 :(得分:1)
字符串是指向字符的指针,因此您不能指向整数。您可以进行一些转换工作,但这似乎不适合您的问题。你需要的是一个结构。
实施您的示例:
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.
}
答案 2 :(得分:1)
目前尚不清楚,但我认为您希望能够访问各个角色。这是你在找什么?
#include <stdio.h>
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