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

标签 c pointers char

我想将指针 char* name 放入 char* path。我正在从 scanf 获取 name 的值。可能吗?

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

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

最佳答案

我假设你的意思是你有:

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"

关于c - 如何将指向 char 的指针放入另一个指向 char 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27749013/

相关文章:

c - 为什么我可以直接使用某些 ruby​​ C 扩展数组方法,但不能使用其他方法?

c++ - 为什么我不能将迭代器作为参数传递给字符串,作为函数 strcat() 的参数?

c - 学习中对C指针的疑惑

c - 我需要读取字符串中的所有整数、数学运算符和字符

java - 如何按顺序统计字符串中的字符?

c - C 中的定点无符号除法

c++ - 在 C/C++ 中查找可用的网络接口(interface)?

c - C (POSIX) 中的 sleep 函数破坏了我的程序

c++ - 将二维数组指针传递给函数并在函数内部分配内存

c++ - wchar/char 变量