我在1个字符串中有多个字符串的问题
//------------------------------------------------
char* P1P2P3 = { FirstName,LastName,Email };
if (strcmp(buffer5, P1P2P3) == 0)
{
//OK
}
else
{
//Not OK
}
//----------------------------------------------
这是我的问题:
error C2440: 'initializing' : cannot convert from 'initializer-list' to 'char *'
我希望它像这样来
名字+姓氏+电子邮件
代表:
名字:Max
姓氏:TEST
电子邮件:Max@gmail.com
应该是这样的: MaxTESTMax@Gmail.com
谢谢你们
答案 0 :(得分:0)
C风格字符串唯一有效的初始化是:
O(n)
通过初始化无法完成制作此类字符串的所有其他方法。
C ++中的C风格字符串方式是
O(n^2)
使用C ++字符串:
const char* const P1P2P3 = "literal string";
答案 1 :(得分:0)
选项1:使用std::string
代替char*
std::string FirstName,LastName,Email;
...
std::string P1P2P3 = FirstName+LastName+Email;
选项2:使用std::stringstream
std::stringstream sout;
sout<<FirstName<<LastName<<Email;
char* P1P2P3 = sout.str().c_str();
选项3:使用sprintf
将字符串打印到缓冲区
选项4:使用strcat
追加2个字符串,然后再追加第3个字符串。
答案 2 :(得分:0)
为什么不采用C ++的方式来实现呢。
std::string P1P2P3 = FirstName + LastName + Email;
if (P1P2P3 == buffer5) {
// OK
}
else {
// Not OK
}