读书人

标准库string 部类和字符串字面值

发布时间: 2013-07-09 09:50:48 作者: rapoo

标准库string 类型和字符串字面值
看书看到这一句 很疑惑..


警告:标准库string 类型和字符串字面值
因为历史原因以及为了与 C 语言兼容,字符串字面值与标准
库 string 类型不是同一种类型。这一点很容易引起混乱,编程时一定
要注意区分字符串字面值和 string 数据类型的使用,这很重要

[解决办法]

#include <iostream>
#include "string"
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
string str("123");
const char *p = str.c_str();
for (int i=0;i<4;i++)
{
cout<<"第"<<i<<"个元素,"<<p[i]<<","<<str[i]<<endl;
}
return 0;
}
最后一个元素是0,屏幕是打印不出来的

[解决办法]
简单的说,C,C++原生字符串 即 C字符串,只是带结束符的字符数组,string 不是C++的内置类型;
只是库定义的一种数据类型,和用户定义的类类型没有多少区别,所以不能完全混用。

string 不能完全替代原生字符串(带结束符的字符数组)。
而字符串常量,是常量的原生字符串常量。

读书人网 >C++

热点推荐