我需要在char *(“很酷”)中添加前缀('X')。
最好的方法是什么?
最简单的方法是什么?
char a = 'X';
char* b= " is cool";
我需要:
char* c = "X is cool";
到目前为止,我尝试了strcpy-strcat,memcpy;
我知道这听起来像是一个愚蠢的,未经研究的问题。 我想知道的是,是否有一种方法可以将char添加到数组而不将char转换为字符串。
答案 0 :(得分:6)
如何使用C ++标准库而不是C库函数?
auto a = 'X';
auto b = std::string{" is cool"};
b = a+b;
或简称:
auto a ='X';
auto b = a+std::string{" is cool"};
请注意,显式强制转换为字符串。
答案 1 :(得分:2)
也许您可以使用字符串而不是char *?
std::string p = " is cool";
std::string x = 'X' + p;
答案 2 :(得分:1)
您正在使用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端,你会更快乐,更有成效[需要引证]。
答案 3 :(得分:0)
尝试,
char a[20] = "X";
char b[] = " is cool";
strcat(a,b);