在c++中为char*添加char前缀的最佳方法
Best way to add a char prefix to a char* in C++?
我需要给字符* (" is cool")添加一个前缀('X')
最好的方法是什么?
最简单的方法是什么?
char a = 'X';
char* b= " is cool";
我需要:
char* c = "X is cool";
到目前为止,我尝试了strp -strcat, memcpy;
我知道这听起来是一个愚蠢的,未经研究的问题。我想知道的是,是否有一种方法可以将char添加到数组中,而无需将char转换为字符串。用c++标准库代替C库函数怎么样?
auto a = 'X';
auto b = std::string{" is cool"};
b = a+b;
或短:
auto a ='X';
auto b = a+std::string{" is cool"};
注意,显式强制转换为string是强制性的。
也许你可以用字符串代替char* ?
std::string p = " is cool";
std::string x = 'X' + p;
你使用的是c++,所以为了达到这个目的,不要使用char*
,使用std::string
。
std::string str = std::string("X") + std::string(" is cool");
// Or:
std::string str = std::string("X") + " is cool";
// Or:
std::string str = 'X' + std::string(" is cool");
// Or:
std::string str = std::string{" is cool"};
这将像一个魅力,它表达你的意图,它是可读的,容易输入。(主观的,是的,但无论如何。)
如果您确实需要使用char*
,请注意char* b = " is cool";
无效,因为您正在使用字符串文字。考虑使用char b[] = " is cool";
。是字符数组。
您将使用strcat
确保为目标字符串分配足够的内存。
char a[32] = "X"; // The size must change based on your needs.
// See, this is why people use std::string ;_;
char b[] = " is cool";
// This will concatenate b to a
strcat(a, b);
// a will now be "X is cool"
但是说真的,避免c++的C端,你会更快乐,更有效率[来源请求]。
试试,
char a[20] = "X";
char b[] = " is cool";
strcat(a,b);