c++学习笔记--C++Primer第4版--标准库类型string

string类型

一、概述

定义:支持长度可变的字符串,C++标准库将负责管理与存储字符相关的的内存,以及提供各种有用的操作。

目的:满足对字符串的一般应用。

需要导入string类库头文件,声明标准库命名空间,代码如下:

1 #include <string>
2 
3 using std::string

 

二、初始化

4种方式,代码如下:

string s1;              //默认构造函数,s1为空串           
string s2(s1);         //将s2初始化为s1的一个副本         
string s3("hello");    //将s3初始化为一个字符串字面值副本
string s4(n, 'c');     //将s4初始化为字符'c'的n个副本,如:string s4(3, 'c')----"ccc"

 三、string对象的操作

常用操作如下:

s.empty()      //判定s是否为空,返还布尔值
s.size()       //返回s中字符的个数
s[n]           //下标操作,返回第n个字符
s1 + s2        //连接成一个新字符串
s1 = s2        //赋值
s1 == s2       //比较操作

 1、string::size_type

size()成员函数返回的是string::size_type类型的值。不要把size的返回值赋给一个int变量

2、string关系操作符,自行理解

3、string对象的赋值,自行理解

4、两个string对象相加,自行理解

5、和字符串字面值的连接

当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的:

string s1 = "hello";
string s2 = "world";
string s3 = "hello" + "world";       // 错误,两边都是字符串字面值
string s4 = s1 + "world";             //正确
string s5 = s1 + "a" + "b";          //正确,s1 + "a"将返回一个新的string对象,再与"b"进行连接
string s6 = "a" + "b" + s1;          //错误

 

以下一段代码帮助大家了解以下知识点:

#include <string>;
#include <iostream>

using namespace std;

string s1("Hello World!");  //初始化字符串s1
string::size_type cnt = 0;  //保存目标字符个数

for(string::size_type index = 0; index != s1.size(); ++index)
{
    if (s1[index] == 'o')
        ++cnt;
}

cout << cnt << " char 'o' in " << s1 << endl;

 

posted @ 2013-03-04 14:39  瘦夹鲁尼  阅读(440)  评论(2编辑  收藏  举报