《string类字符串处理.ppt》由会员分享,可在线阅读,更多相关《string类字符串处理.ppt(18页珍藏版)》请在三一办公上搜索。
1、第12章 string 类字符串处理,C+语言程序设计教程第12章 字符串类处理,第12章 string类字符串处理,学习目标,使用C+标准类库中的string定义字符串对象;能使用string类成员函数、操作符对字符串对象进行各种操作;使用字符串对象位置指针;字符串对象与C风格字符串的转换。,C+语言程序设计教程第12章 字符串类处理,在前面的章节中,存储字符串使用的是字符数组,对于字符串的处理是借助Cstring头文件中提供的字符串函数完成的。学习了类与对象后,发现这种方式不符合面向对象的风格,于是我们自己定义了字符串类String,编写少数字符串处理的成员函数。字符串是C+中一种很重要的
2、数据,C+标准类库提供了字符串类string,为字符串处理提供了大量的操作。,C+语言程序设计教程第12章 字符串类处理,12.1 string类对象的定义,使用数组存储字符串,调用系统函数来处理字符串这种数据与处理分离的方式不符合C+面向对象的风格。为此,C+提供了模板类basic_string,通过:typedef basic_string string;将模板类basic_strin具体化成字符串类string,string类封装了字符串的属性与方法,使对字符串处理变得方便。使用string 类需要包括头文件string:#include,C+语言程序设计教程第12章 字符串类处理,12
3、.1 string类对象的定义,字符串类构造函数的原型与功能列表如表12-1。,C+语言程序设计教程第12章 字符串类处理,12.1 string类对象的定义,表12-1 String类构造函数原型,2.链表类模板,C+语言程序设计教程第12章 字符串类处理,运行结果:,S2=S3=abcdeS4=abcdeS5=abcS6=123S7=AAAAAA,string类提供了丰富的成员函数,每个成员函数又有多种重载形式,表12-2只列出常用的成员函数与常用的原型。,C+语言程序设计教程第12章 字符串类处理,12.2 string类成员函数,表12-2 string类常用成员函数,2.链表类模板,
4、C+语言程序设计教程第12章 字符串类处理,运行结果:,Input string and new string:c+Javaold string:I like c+,I use c+programmingnew string:I like Java,I use c+programming,string类重载了多个操作符用于对字符串进行操作,列表如表12-3。,C+语言程序设计教程第12章 字符串类处理,12.3 string类成员函数,表12-3 string类操作符,2.链表类模板,C+语言程序设计教程第11章C+输入输出流,运行结果:,1234Aaaboutabovean,2.链表类模板,
5、C+语言程序设计教程第11章C+输入输出流,运行结果:,okC+is ok!C+is ok!str3str5 str5:powerfulC+is powerful!,string类提供了指向string类串中字符的位置指针(迭代器iterator),用于访问单个字符,向前和向后遍历字符串。指针可以进行加、减运算,不检查指向的位置是否越界。string类串位置指针的类型有:string:iterator string:const_iterator/常指针类型,用于指向常对象 string:reverse_iterators/反向指针类型 string:const_reverse_iterator
6、s/常反向指针类型,用于指向常对象,C+语言程序设计教程第12章 字符串类处理,12.4 string类串位置指针,string类用于读取指针的成员函数列表如表12-4。,C+语言程序设计教程第12章 字符串类处理,12.4 string类串位置指针,表12-4 string类操作符,2.链表类模板,C+语言程序设计教程第12章 字符串类处理,运行结果:,ABCDEFGHIABCDEFGHIIHGFEDCBA,C风格的字符串通常作为string类串的初值,可以使用前面列出的string类成员函数将中C风格的字符串作为string类串的数据成员。将string类串转化成C风格字符串实际上是从st
7、ring类串中提取其中的字符。string类串不以NULL(0)结尾,而C风格的字符串以NULL结尾,因此当从string类串中提取字符后,要在尾部加上结尾符。,C+语言程序设计教程第12章 字符串类处理,12.5 string类串与风格字符串的转化,string类提供了从string类对象中提取C风格字符串的成员函数,列表如表12-5。,C+语言程序设计教程第12章 字符串类处理,12.5 string类串与风格字符串的转化,表12-5 string类中提取C串的成员函数,2.链表类模板,C+语言程序设计教程第12章 字符串类处理,运行结果:,string1=ABCDEFGHIc_str1=ABCDEFGHIc_str2=ABCDEFGHI,12.6 本章小结,string类串是string类对象,可以调用重载的构造函数以不同的方式初始 化串;对字符串的操作通过调用成员函数与使用重载的操作符实现。string类提供了指向string类串中字符的位置指针(迭代器),用于访问单 个字符,向前和向后遍历字符串。指针类型为string:iterator,可以使 用指针运算符*与取下标运算符存取指向的字符。string类串不以0结尾,不需要在string类串中添加结尾符,当从string 类串中提取C风格串时要添加结尾符。,C+语言程序设计教程第12章 字符串类处理,