【问题标题】:C++ strings connecting with char arrays与 char 数组连接的 C++ 字符串
【发布时间】:2012-05-18 05:31:00
【问题描述】:

这是个好方法吗?

char* array = "blah blah";
char* array2 = "bloh bloh";
string str = string() + array + array2;

不能直接string str = array + array2,不能加2个指针。还是我应该这样做

string str();
str += array;
str += array2;

【问题讨论】:

  • 不,混合低级和高级类型不好。
  • 顺便说一句,这段代码不再是有效的 C++(使用 C++11),并且即使使用旧的 C++ 来使用已弃用的非常量 char* 文字,也应该生成警告.此外,由于most vexing parse,第二个代码无论如何都无法编译。
  • @usoban:std::string 定义从char*std::string 的转换是有原因的。有时你有一个char* 需要处理,但没有办法解决。

标签: c++ arrays string char connect


【解决方案1】:

我会写:

string str = string(array) + array2;

请注意您的第二个版本is not valid code。您应该删除括号:

string str;
str += array;
str += array2;

最后,arrayarray2 的类型应为 constchar *

【讨论】:

  • @user1112008:我不确定我是否理解你的问题。
  • 我只需要将 2(或更多)个字符数组粘合到字符串中。
【解决方案2】:

有很多方法可以做到这一点:

string str(array);
str += array2;

string str = string(array) + array2;

甚至

string str = array + string(array2);

或字符串流:

stringstream ss;
ss << array << array2;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 2019-07-13
    • 2018-06-18
    • 2015-09-14
    相关资源
    最近更新 更多