第12章 string 类字符串处理
C
+
+语言程序设计教程
第12章
字符串
类处理
1
第12章 string类字符串处理
学习目标
使用C++标准类库中的string定义字符串对象;
能使用string类成员函数、操作符对字符串对象进行各种操作;
使用字符串对象位置指针;
字符串对象与C风格字符串的转换。
C
+
+语言程序设计教程
第12章
字符串
类处理
2
在前面的章节中,存储字符串使用的是字符数组,对于字符串的处理是借助Cstring头文件中提供的字符串函数完成的。
学习了类与对象后,发现这种方式不符合面向对象的风格,于是我们自己定义了字符串类String,编写少数字符串处理的成员函数。
字符串是C++中一种很重要的数据,C++标准类库提供了字符串类string,为字符串处理提供了大量的操作。
C
+
+语言程序设计教程
第12章
字符串
类处理
string类对象的定义
3
使用数组存储字符串,调用系统函数来处理字符串这种数据与处理分离的方式不符合C++面向对象的风格。为此,C++提供了模板类basic_string, 通过:
typedef basic_string<char> string;
将模板类basic_strin具体化成字符串类string, string类封装了字符串的属性与方法,使对字符串处理变得方便。使用string 类需要包括头文件string:
#include <string>
C
+
+语言程序设计教程
第12章
字符串
类处理
string类对象的定义
4
字符串类构造函数的原型与功能列表如表12-1。
C
+
+语言程序设计教程
第12章
字符串
类处理
string类对象的定义
表12-1 String类构造函数原型
构造函数的原形
作用
string ( )
默认构造函数,建立长度为0的字符串
string (const string& rhs)
拷贝构造函数,利用已存在的串rhs初始化新串
string (const string& rhs,
unsigned pos,unsigned n)
将存在的串rhs的从位置pos开始,取n个字符初始化新串(位置编号从0开始)
string (const char *)
用字符数组s初始化新串
string (const char * s,unsigned n)
用字符数组s前n个字符初始化新串
string (unsigned n,char c)
将字符c重复n次作为新串的值
5
C
+
+语言程序设计教程
第12章
字符串
类处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
23
24
25
/****************************************
* *
* string类对象的建立与初始化*
****************************************/
#include <string>
#include <iostream>
using namespace std;
int main()
{
char * S1="12345";
string S2; //建立长度为0的字符串
string S3("abcde"); //用字符串初始化新串
string S4(S3); //利用已存在的串S3初始化新串
string S5(S3,0,3); //利用已存在的串S3初始化新串
string S6(S1,3); //利用已存在的字符数组初始化新串
string S7(6,'A');
cout<<"S2="<<S2<<endl;
cout<<"S3="<<S3<<endl;
cout<<"S4="<<S4<<endl;
cout<<"S5="<<S5<<endl;
cout<<"S6="<<S6<<endl;
cout<<"S7="<<S7<<endl;
return 0;
}
运行结果:
S2=S3=abcdeS4=abcdeS5=abcS6=123S7=AAAAAA
6
string类提供了丰富的成员函数,每个成员函数又有多种重载形式,表12-2只列出常用的成员函数与常用的原型。
C
+
+语言程序设计教程
第12章
字符串
类处理
string类成员函数
表12-2 string类常用成员函数
成员函数的原型
功能
unsigned length ( ) con
string类字符串处理 来自淘豆网m.daumloan.com转载请标明出处.