C ++中的C ++多字符串

时间:2015-09-03 08:57:39

标签: c++ char

我在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

谢谢你们

3 个答案:

答案 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
}