4314c+标准tng1314c+标准ng续 标准字符串:将C++的 1.串长函数 < string. h>函数库作为字符串 int strlen(char *s)i 数据类型的方案。 char *strcpy(char *s1, char*s2); 例如: char s[M] ■3.串拼接 ■串的结束标记:"Y0 char *strcat(char *s1, char *s2); "\o是AsCI码中8位BTT全0码, 4.串比较 又称为NULL符 int strcmp(char *s1, char *s2); next 北京大单啦检写解有,究 3114C++标准 string(续) 312 String抽象数据类型 5.输入和输出函数 字符串类( class String) ■6.定位函数 ■不采用 char s[M]的形式 char strchr(char *s, char c); 而采用一种动态变长的存储结 ■7.右定位函数 构 char *strrchr(char *s, char c); 北京歌魏孔节了有,印究 张所有,赖 ass String /它的存储结构和实现方法使用了C++标准st 为了区别,类 String所派生创建的实例对象 char.tr://私有的指针变量,用于指向存储向量atr[aixe+1] 在程序首,要# include< string.h)和 includ /本串的当前实际长度 ∥/及# nclude< stdlib.b>,以及# include String(hr咖="):/创建一个空的字符 ∥创建新字符串,并将标准字符率s持贝为初位 /1.字符串的数据表示 String0∥销數本串,从计算机存储空间删去本串 /字符串S通常用顺序存放,用数组S[]存储,元素的类型为char ∥下面是函数的定文,包捐赋值函数=拼换函数十和比较函敷〈等 /字符串为变长,使用变量size记录串的当前长度 String operators( char = s);/属值操作标准率持贝到本串 String operator=( String 5);/值操作,率复制到本率 ∥2.使用变量访问字符串 );/∥拼接函量十,本率拼接标准率 /字符串变量能参与运算,例如S1+S2表示两个字符串首尾拼接在一起 String operator+( String s);∥拼接函录十,本率拼按串 7/用数组strD存储字符串,在内部可以用str[访问串的第i个字符, end String operator+ ring s)1 友函教作为拼接函数+其返回值是一个实例串,等于标准串t拼接串 ∥/3.字符串类的运算集:请参看下面的成员函数 22 北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 7 back next 3.1.1.4 C++标准string 标准字符串:将C++的 <string.h>函数库作为字符串 数据类型的方案。 例如:char S[M]; 串的结束标记:'\0' '\0'是ASCII码中8位BIT全0码, 又称为NULL符。 北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 8 back next 3.1.1.4 C++标准string(续) 1. 串长函数 int strlen(char *s); 2. 串复制 char *strcpy(char *s1, char*s2); 3.串拼接 char *strcat(char *s1, char *s2); 4.串比较 int strcmp(char *s1, char *s2); 北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 9 back next 3.1.1.4 C++标准string(续) 5.输入和输出函数 6.定位函数 char *strchr(char *s, char c); 7.右定位函数 char *strrchr(char *s, char c); 北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 10 back next 3.1.2 String抽象数据类型 字符串类(class String): 不采用char S[M]的形式 而采用一种动态变长的存储结 构。 北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 11 back next 3.1.2 String抽象数据类型(续) class String //字符串 类 //它的存储结构和实现方法使用了C++标准string(简称标准串), //为了区别,类String所派生创建的实例对象,简称‘本串’,或‘实例串’ //在程序首,要#include <string.h>和#include <iostream.h>及 // 及 #include <stdlib.h>,以及#include <assert.h> { //1.字符串的数据表示: //字符串 S 通常用顺序存放,用数组S[]存储,元素的类型为char //字符串为变长,使用变量size记录串的当前长度 // 2.使用变量访问字符串: //字符串变量能参与运算,例如S1 + S2表示两个字符串首尾拼接在一起 //用数组str[]存储字符串,在内部可以用str[i]访问串的第i个字符, // 3.字符串类的运算集:请参看下面的成员函数 北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 12 back next private: char *str; //私有的指针变量,用于指向存储向量str[size+1] int size; //本串的当前实际长度 public: String(char *s = ''); //创建一个空的字符串 String(char *s); // 创建新字符串,并将标准字符串s拷贝为初值 ~String() // 销毁本串,从计算机存储空间删去本串 //下面是函数的定义,包括赋值函数 = 拼接函数 + 和比较函数 < 等 String& operator= (char *s);//赋值操作=,标准串s拷贝到本串 String& operator= (String& s);//赋值操作=,串s复制到本串 String operator+ (char *s);//拼接函数+,本串拼接标准串s String operator+ (String& s);//拼接函数+,本串拼接串s friend String operator+ (char *s1, String& s); //友函数作为拼接函数+ 其返回值是一个实例串,等于标准串str拼接串s