C++标准库string类型的操作总结
来源:互联网 发布:protobuffer 数组 编辑:程序博客网 时间:2024/05/16 10:57
总结一下C++中string的操作,来自〈C++ Primer〉第四版。
1. string对象的定义和初始化:
string s1; //空串string s2(s1); //将s2初始化为s1的一个副本string s3("value");//s3初始化并赋值string s4(n,"c");//s4初始化,赋值为n个'c'string s5(b,e);//初始化s5为迭代器b,e范围内的副本string s6(cp);//用c风格的字符串初始化string s7(cp,n);//cp前n个元素的副本string s8(s2,pos2);//s8为s2从pos2开始到结尾的副本string s9(s2,pos2,len2);//同上,不过的长度为len2(不超过s2的长度)//其中有一种方法需要注意:char no_null[] = {'H','i'};string s10(no_null);//错误,不是以null结尾的串string s10(no_null,2);//ok,可以自动添加null结尾
2. string的读写:
string s;cin >> s;cout << s << endl;//注意,cin是会被空白符截断的//要得到整行输入,采用while循环,或者:getline(cin,s);
3.string的操作:
s.empty();//判断s是否为空,相当于s.size()==0s.size();//s的长度s[n];//n位置的字符(左值返回)s1+s2;//返回s1和s2连接的串s1=s2;//把s1替换为s2的副本s1==s2;//判断s1,s2是否相等!=,<,<=,>,>=//按字典顺序比较//==================s.insert(p,t);//在迭代器p指向的元素前插入t,返回指向t的迭代器s.insert(p,n,t);//同上,插入n个t,返回voids.insert(p,b,e);//插入迭代器b,e间的元素,返回voids.insert(pos,n,c); //在pos前插入n个字符c,返回s的引用s.insert(pos,s2);//在pos前插入s2,返回s的引用s.insert(pos,s2,pos2,len); //在pos前插入s2中从pos2开始的len个字符,返回s的引用s.insert(pos,cp,len);//pos前插入cp数组(c风格字串)的前len个字符,返回s的引用s.insert(pos,cp);//在pos前插入cp,返回s的引用//==================s.assign(b,e);//用b,e间的元素替换s,返回ss.assign(n,t);//用n个t替换s,返回ss.assign(s2);//用s2的副本替换s,返回s的引用s.assign(s2,pos2,len);//用s2从pos2开始的len长的副本替换s,返回s的引用s.assign(cp,len)//用cp的前len个字符副本替换s,返回s的引用s.assign(cp)//用cp的副本替换s,返回s的引用//==================s.erase(p);//删除迭代器p指向的元素,返回指向后一个元素的迭代器s.erase(b,e);//删除b,e间的元素,返回值同上s.erase(pos,len);//删除从pos开始的len个字符,返回s的引用//==================s.substr(pos,n);//返回s中从pos开始的n个字符组成的串s.substr(pos);//返回s中从pos开始到结尾的串s.substr();//返回s的副本//==================s.append(args);//将args串接在s的后面,返回s的引用//==================s.replace(pos,len,args);//删除s中从pos开始的len个字符,用args串替换,返回s的引用//args不能为b2,e2s.replace(b,e,args);//删除迭代器b,e范围内的字符,用args替换,返回s的引用//args不能为s2,pos2,len2//==================append,replace的args的说明s2//strings2,pos2,len2//s2中下pos2开始的len2个字符cp//c风格的串cp,len2//cp指向以空结束的前len2个字符n,c//字符c的n个副本b2,e2//迭代器b2,e2范围内的所有字符
4.string的查找操作:
s.find(args);//args的第一次出现s.rfind(args);//最后一次出现s.find_first_of(args);//args中任意字符的第一次出现s.find_last_of(args);//args中任意字符的最后一次出现s.find_first_not_of(args);//查找第一个不属于args的字符s.find_last_not_of(args);//查找最后一个不属于args的字符//=================argsc,pos=0//查找字符c,默认从s的0位置开始s2,pos=0//查找s2cp,pos=0//查找cp(c风格字串)cp,pos,n//从s的pos开始查找cp的前n个字符,没有默认值
5.string的比较:
除了刚才提到的等号及不等号的比较,c++还提供了一个比较函数compare
s.compare(s2);//比较s和s2s.compare(pos1,n1,s2);//s从pos1开始的n1个字符与s2比较s.compare(pos1,n1,s2,pos2,n2);//s从pos1开始的n1个字符与s2从pos2开始的n2个字符比较s.compare(cp); //比较s和cps.compare(pos1,n1,cp); //s从pos1开始的n1个字符与cp比较s.compare(pos1,n1,cp,n2); //s从pos1开始的n1个字符与cp的前n2个字符比较//compare的返回值: >0 s大; <0 s小; =0 二者相等
6.cctype提供的字符判断函数:
需要包含头文件: #include<cctype>
总结一下C++中string的操作,来自〈C++ Primer〉第四版。
1. string对象的定义和初始化:
string s1; //空串string s2(s1); //将s2初始化为s1的一个副本string s3("value");//s3初始化并赋值string s4(n,"c");//s4初始化,赋值为n个'c'string s5(b,e);//初始化s5为迭代器b,e范围内的副本string s6(cp);//用c风格的字符串初始化string s7(cp,n);//cp前n个元素的副本string s8(s2,pos2);//s8为s2从pos2开始到结尾的副本string s9(s2,pos2,len2);//同上,不过的长度为len2(不超过s2的长度)//其中有一种方法需要注意:char no_null[] = {'H','i'};string s10(no_null);//错误,不是以null结尾的串string s10(no_null,2);//ok,可以自动添加null结尾
2. string的读写:
string s;cin >> s;cout << s << endl;//注意,cin是会被空白符截断的//要得到整行输入,采用while循环,或者:getline(cin,s);
3.string的操作:
s.empty();//判断s是否为空,相当于s.size()==0s.size();//s的长度s[n];//n位置的字符(左值返回)s1+s2;//返回s1和s2连接的串s1=s2;//把s1替换为s2的副本s1==s2;//判断s1,s2是否相等!=,<,<=,>,>=//按字典顺序比较//==================s.insert(p,t);//在迭代器p指向的元素前插入t,返回指向t的迭代器s.insert(p,n,t);//同上,插入n个t,返回voids.insert(p,b,e);//插入迭代器b,e间的元素,返回voids.insert(pos,n,c); //在pos前插入n个字符c,返回s的引用s.insert(pos,s2);//在pos前插入s2,返回s的引用s.insert(pos,s2,pos2,len); //在pos前插入s2中从pos2开始的len个字符,返回s的引用s.insert(pos,cp,len);//pos前插入cp数组(c风格字串)的前len个字符,返回s的引用s.insert(pos,cp);//在pos前插入cp,返回s的引用//==================s.assign(b,e);//用b,e间的元素替换s,返回ss.assign(n,t);//用n个t替换s,返回ss.assign(s2);//用s2的副本替换s,返回s的引用s.assign(s2,pos2,len);//用s2从pos2开始的len长的副本替换s,返回s的引用s.assign(cp,len)//用cp的前len个字符副本替换s,返回s的引用s.assign(cp)//用cp的副本替换s,返回s的引用//==================s.erase(p);//删除迭代器p指向的元素,返回指向后一个元素的迭代器s.erase(b,e);//删除b,e间的元素,返回值同上s.erase(pos,len);//删除从pos开始的len个字符,返回s的引用//==================s.substr(pos,n);//返回s中从pos开始的n个字符组成的串s.substr(pos);//返回s中从pos开始到结尾的串s.substr();//返回s的副本//==================s.append(args);//将args串接在s的后面,返回s的引用//==================s.replace(pos,len,args);//删除s中从pos开始的len个字符,用args串替换,返回s的引用//args不能为b2,e2s.replace(b,e,args);//删除迭代器b,e范围内的字符,用args替换,返回s的引用//args不能为s2,pos2,len2//==================append,replace的args的说明s2//strings2,pos2,len2//s2中下pos2开始的len2个字符cp//c风格的串cp,len2//cp指向以空结束的前len2个字符n,c//字符c的n个副本b2,e2//迭代器b2,e2范围内的所有字符
4.string的查找操作:
s.find(args);//args的第一次出现s.rfind(args);//最后一次出现s.find_first_of(args);//args中任意字符的第一次出现s.find_last_of(args);//args中任意字符的最后一次出现s.find_first_not_of(args);//查找第一个不属于args的字符s.find_last_not_of(args);//查找最后一个不属于args的字符//=================argsc,pos=0//查找字符c,默认从s的0位置开始s2,pos=0//查找s2cp,pos=0//查找cp(c风格字串)cp,pos,n//从s的pos开始查找cp的前n个字符,没有默认值
5.string的比较:
除了刚才提到的等号及不等号的比较,c++还提供了一个比较函数compare
s.compare(s2);//比较s和s2s.compare(pos1,n1,s2);//s从pos1开始的n1个字符与s2比较s.compare(pos1,n1,s2,pos2,n2);//s从pos1开始的n1个字符与s2从pos2开始的n2个字符比较s.compare(cp); //比较s和cps.compare(pos1,n1,cp); //s从pos1开始的n1个字符与cp比较s.compare(pos1,n1,cp,n2); //s从pos1开始的n1个字符与cp的前n2个字符比较//compare的返回值: >0 s大; <0 s小; =0 二者相等
6.cctype提供的字符判断函数:
需要包含头文件: #include<cctype>
isalnum(c);//true if c 是数字或字母isalpha(c);//true if c 是字母iscntrl(c);//true if c 是控制字符isdigit(c);//true if c 是数字isgraph(c);//true if c 不是空格但可打印islower(c);//true if c 是标点符号isprint(c);//true if c 是空白字符ispunct(c);//true if c 是大写字母isspace(c);//true if c 是空白字符isupper(c);//true if c 是大写字符isxdigit(c);//true if c 是十六进制数tolower(c);//将c转换为小写toupper(c);//将c转换为大写
- C++标准库string类型的操作总结
- C++标准库string类型的操作总结
- C++标准库string类型的操作总结
- C++标准库string类型的操作总结
- C++标准库string类型操作总结
- 标准库string类型总结
- 标准库string类型总结
- C++primer 3.2 标准库类型string(sizeof的使用)
- 【C/C++】C++ 标准库函数string类型要点总结
- c++_标准库类型string
- 标准库String类型
- 标准库string类型
- 标准库string类型
- 标准库string类型
- 标准库类型 string
- 标准库string类型
- 标准库类型string
- 标准库类型string
- 技术pk基础
- C语言的字符串操作(例)
- c++中的string用法 一
- 不要迷失在技术的海洋中收藏
- Inside QT Series (三):对象数据存储(B)
- C++标准库string类型的操作总结
- 检测打印机并于指定打印机上打印
- C 如何从string中删除一个字符
- 学习备注
- 取简单PE信息
- 启动U盘
- xterm get_pty: not enough ptys
- 网博士智能建站系统7.0注册机
- windows中的WaitForSingleObject和WaitForMultipleObjects