标准库string类型

最后更新于:2022-04-01 14:23:39

### 一. 首先作为一种标准库类型,string存在四种基本的构造函数。如下: string s;  //默认构造函数,s为空串 string s(s1);//用s1来初始化s string s("My Blog [http://blog.csdn.net/IAccepted](http://blog.csdn.net/IAccepted)");  //将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 [http://blog.csdn.net/IAccepted](http://blog.csdn.net/IAccepted)"; char * b=a.c_str();//这样不能通过编译,原因是为了防止string对象内容被恶意修改,返回的是const类型的对象,所以要加const修饰 const char * b=a.c_str();//这样就能编译通过了。 简单总结了一点string使用时的注意事项,欢迎大家补充交流!
';