是否可以向char*
添加文字?
因为此代码会出错:
name3 = "SELECT account_id FROM players WHERE name = '" + name + "'";
(name3 = char *)
答案 0 :(得分:16)
您的问题标有 C ++ ,因此请使用C ++。摆脱你的char*
并使用std::string
:
std::string name = "...";
std::string name3 = "SELECT account_id FROM players WHERE name = '" + name + "'";
您可以通过分配足够大的新数组来“添加”两个字符数组(char *),并将两个字符串复制到新数组中。我认为您会同意std::string
更容易,但它也为您提供了更少的机会,可以在您的代码中引入细微的错误,从而使调试和维护更加简单。
答案 1 :(得分:2)
您必须先分配内存,例如:
char* name = new char[ BUFF_SIZE ];
然后使用strcpy
和strcat
,但是..您有标记c++
。使用std::string
std::string name3 = "SELECT account_id FROM players WHERE name = '"
+
std::string( name )
+
"'";
或
std::string name3 = "SELECT account_id FROM players WHERE name = '";
name3 += name;
name3 += "'"; // or name3.push_back( ';' );
注意如果name
不是const char*
,而是std::string
,则您不需要进行显式转换,所以请参阅meagar的帖子
答案 2 :(得分:1)
您还可以将sprintf用于您所描述的内容。
此外,如果这是用于数据库连接,您可能需要考虑使用预准备语句。