c++ - 如何让 MinGW 将 "text"之类的文本视为 const char*

标签 c++ c string char mingw

AFAIK,在升级到 MinGW 4.4 之后。* 前段时间我所有的字面上写的字符串(比如 "i'm the string")都被视为输入 std::string。是否有任何命令行选项可以使 MinGW 像以前一样将它们视为 const char*

最佳答案

在 C/C++ 中,字符串默认是 char */char[],只有当你明确说它是一个 std::string 时你会得到那些。

示例:

std::cout << "first:\t" << typeid("aa").name() << std::endl;
std::cout << "second:\t" << typeid(std::string("a")).name() << std::endl;

输出:

first:  A3_c
second: Ss

结果:

  • 第一个:长度为 3 的 char 数组(= 2 个字符 + 结尾)
  • 第二个:是一个std::string

如您所见,如果您编写"abc",您不会得到std::string

但是:如果你写 std::string str = "abc" 你会得到一个 std::string 因为赋值运算符 ( =) 用于:string& operator= (const char* s)

关于c++ - 如何让 MinGW 将 "text"之类的文本视为 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6750549/

相关文章:

java - 提取存储在 unsigned char 数组中的 RSA 公钥模数和指数

c++ - 如何指向实际元素而不仅仅是数组地址?

c - "Paranormal"队列结构中的事件

c - 图像大小调整程序输出扭曲的图像

r - 将字符串中由两个不同分隔符分隔的值列表转换为单独的行

php - preg_split 对特殊字符不区分大小写

c++ - QEvent::Close 不是由 changeEvent 触发的

c++ - 在 QtCharts 上显示文本

c - 编译器如何解释 &a[0]+1 和 &a+1 计算

Java从字符串中删除公钥页眉和页脚