您的位置:首页 > 编程语言 > C语言/C++

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

2013-03-04 14:39 417 查看
string类型

一、概述

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

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

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

#include <string>

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个字符
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: