当前位置:编程学习 > C/C++ >>

关注C++细节——标准库string类型

 

一. 首先作为一种标准库类型,string存在四种基本的构造函数。如下:

string s;  //默认构造函数,s为空串

string s(s1);//用s1来初始化s

string s("My Blog http://www.zzzyk.com");  //将s初始化为一个字符串字面值

string s(n,'c'); //将s初始化为n个‘c’的副本

二.对于输入主要就是cin>>s;

(1)读取并忽略开头所有的空白字符。

(2)读取字符直至再次遇到空白字符,读取终止。

(3)输入操作符会返回所读的数据流。

当要读入一整行时可以使用getline函数,getline函数需要两个参数第一个为输入流   对象,第二个为一个string类型对象。值得注意的是getline并不忽略行开头的空白字       符。

三.string::size_type类型

(1)size()函数我们平时都直接默认它返回int类型的值,事实上size()函数返回的是string::size_type类型的值。

(2)string类类型和许多其他类型都定义了一些配套类型。重要的是通过这种配套类型,库类型的使用就能与机器无关。size_type就是这些配套类型中的一种。 

(3)建议string的size操作结果的变量为string::size_type类型。特别重要的是,尽量 不要把size的返回值赋值给一个int变量。

四.string对象的相加注意

 当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必

须至少有一个是string类型的对象。

例.s2=“world”;       string  s=“hellow”+“,”+s2;这里是错误的,因为第一个+

 号的两边都为string字面值。

五.string转为char *

 很多时候我们还是需要将string类型的转化为char*来实现自定义的操作,

C++标准库也为了和之前用C写的程序兼容,于是可以用string的c_str()函数。

string a="My Blog www.zzzyk.com";

char * b=a.c_str();//这样不能通过编译,原因是为了防止string对象内容被恶意修改,返回的是const类型的对象,所以要加const修饰

const char * b=a.c_str();//这样就能编译通过了。

简单总结了一点string使用时的注意事项,欢迎大家补充交流!

  


 

作者 凌风
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,