如何将指向 char 的指针放入另一个指向 char 的指针

How to put pointer to char into another pointer to char

我想将指针 char* name 放入 char* path。我从 scanf 得到 name 的值。可能吗?

char* path = "/home/user/Desktop/name.jpg"; 

我知道这是错误的,但我希望它以这种方式工作

您可以使用几个函数复制字符串。首先想到的是memcpy

char* name = "/home/user/Desktop/name.jpg"; 
char* path;

size_t len = strlen(name);
path = malloc(len + 1); /* plus 1 for the null terminator */

if(path == NULL) exit(1);

memcpy(path, name, 1 + len);

/* do whatever */

free(path);

我假设你的意思是你有:

char *name = "fred";
char *format = "/home/user/Desktop/name.jpg";

然后你想接受它然后做一些事情这样你就得到了结果:

char *result = "/home/user/Desktop/fred.jpg";

为此,您需要分配一些内存(或在其他地方分配足够的内存),然后使用 sprintf()snprintf():

char *name   = "fred";
char *format = "/home/user/Desktop/%s.jpg";

char *result = malloc(strlen(format) - 2 + strlen(name) + 1);
sprintf(result, format, name);

printf("%s\n", result); // Output is "/home/user/Desktop/fred.jpg"