《C++程序设计案例教程》C++中string的用法 string字符串的使用方法.docx
- 文档编号:30701949
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:17
- 大小:1.02MB
《C++程序设计案例教程》C++中string的用法 string字符串的使用方法.docx
《《C++程序设计案例教程》C++中string的用法 string字符串的使用方法.docx》由会员分享,可在线阅读,更多相关《《C++程序设计案例教程》C++中string的用法 string字符串的使用方法.docx(17页珍藏版)》请在冰豆网上搜索。
《C++程序设计案例教程》C++中string的用法string字符串的使用方法
C++中string的用法string字符串的使用方法
分步阅读
string类的常用方法有哪些。
string查找替换、分割字符串、比较、截取、类型转换、排序等功能都提供了强大的处理函数,可以代替字符数组来使用。
熟练掌握好string的各种使用方法,能极大的提高编程效率哦^_^
工具/原料
∙VisualStudio2010(或其他C++编译器)
方法/步骤
1.1
定义和构造初始化
string提供了很多构造函数,可以以多种方式来初始化string字符串
2.2
赋值,拼接字符串
string重载了= + += 等多种运算符,让字符串组合拼接更简单
3.访问字符操作
string可以按数组方式,以下标来访问。
还可以用at()函数访问指定的字符
4.可以使用STL的接口
可以把string理解为一个特殊的容器,容器中装的是字符
5.比较操作== !
= > >= < <= compare等
string的比较操作,按字符在字典中的顺序进行逐一比较。
在字典前面的字符小于后面的字符。
6.查找find rfind
string中除了find、rfind,还有find_first_of等函数也提供了强大的查找功能
7.除了string中的find函数外,char[]数组也有强大的查找函数
C++中有strstr、strchr等也有查找功能。
函数说明如下
char*strstr(constchar*str,constchar*substr); 返回指针,指向substr在字符串str中首次出现的位置。
char*strchr(constchar*str,intch); 返回指针,指向str中字符ch首次出现的位置。
8.与char[]的相互转换
copy(),返回指针,赋值给char[]数组名
c_str(),返回const类型的指针
data(),将内容以字符数组的形式返回
9.分割字符串
常用strtok和substr来分割字符串
10.string大小分配函数
capacity(),返回容器在它已经分配的内存中可以容纳多少元素
resize(Container:
:
size_typen),强制把容器改为容纳n个元素
11.string中的字符替换、删除操作
12.char[]常用的比较、拼接字符串功能
任意字符查找:
char*strpbrk(constchar*str1,constchar*str2);
内存拷贝:
void*memcpy(void*to,constvoid*from,size_tcount);
如果to和from重叠,则函数行为不确定。
memset()对内存初始化。
如:
memset(array,'\0',sizeof(array));
这是将数组的所以元素设置成零的很方便的方法
END
注意事项
∙使用string,必须要包含头文件string.h
∙C++中,最好使用string来代替char[]
C++string字符串函数详解
运算符重载
1.+和+=:
连接字符串
2.=:
字符串赋值
3.>、>=、<和<=:
字符串比较(例如a
4.==、!
=:
比较字符串
5.<<、>>:
输出、输入字符串
注意:
使用重载的运算符+时,必须保证前两个操作数至少有一个为string类型。
例如,下面的写法是不合法的:
#include
#include
intmain()
{
stringstr="cat";
cout<<"apple"+"boy"+str;//illegal!
return0;
}
查找
stringstr;
cin>>str;
str.find("ab");//返回字符串ab在str的位置
str.find("ab",2);//在str[2]~str[n-1]范围内查找并返回字符串ab在str的位置
str.rfind("ab",2);//在str[0]~str[2]范围内查找并返回字符串ab在str的位置
//first系列函数
str.find_first_of("apple");//返回apple中任何一个字符首次在str中出现的位置
str.find_first_of("apple",2);//返回apple中任何一个字符首次在str[2]~str[n-1]范围中出现的位置
str.find_first_not_of("apple");//返回除apple以外的任何一个字符在str中首次出现的位置
str.find_first_not_of("apple",2);//返回除apple以外的任何一个字符在str[2]~str[n-1]范围中首次出现的位置
//last系列函数
str.find_last_of("apple");//返回apple中任何一个字符最后一次在str中出现的位置
str.find_last_of("apple",2);//返回apple中任何一个字符最后一次在str[0]~str[2]范围中出现的位置
str.find_last_not_of("apple");//返回除apple以外的任何一个字符在str中最后一次出现的位置
str.find_last_not_of("apple",2);//返回除apple以外的任何一个字符在str[0]~str[2]范围中最后一次出现的位置
//以上函数如果没有找到,均返回string:
:
npos
cout< : npos; 子串 str.substr(3);//返回[3]及以后的子串 str.substr(2,4);//返回str[2]~str[2+(4-1)]子串(即从[2]开始4个字符组成的字符串) 替换 str.replace(2,4,"sz");//返回把[2]~[2+(4-1)]的内容替换为"sz"后的新字符串 str.replace(2,4,"abcd",3);//返回把[2]~[2+(4-1)]的内容替换为"abcd"的前3个字符后的新字符串 插入 str.insert(2,"sz");//从[2]位置开始添加字符串"sz",并返回形成的新字符串 str.insert(2,"abcd",3);//从[2]位置开始添加字符串"abcd"的前3个字符,并返回形成的新字符串 str.insert(2,"abcd",1,3);//从[2]位置开始添加字符串"abcd"的前[2]~[2+(3-1)]个字符,并返回形成的新字符串 追加 除了用重载的 + 操作符,还可以使用函数来完成。 str.push_back('a');//在str末尾添加字符'a' str.append("abc");//在str末尾添加字符串"abc" 删除 str.erase(3);//删除[3]及以后的字符,并返回新字符串 str.erase(3,5);//删除从[3]开始的5个字符,并返回新字符串 交换 str1.swap(str2);//把str1与str2交换 其他 str.size();//返回字符串长度 str.length();//返回字符串长度 str.empty();//检查str是否为空,为空返回1,否则返回0 str[n];//存取str第n+1个字符 str.at(n);//存取str第n+1个字符(如果溢出会抛出异常) 实例 查找给定字符串并把相应子串替换为另一给定字符串 string并没有提供这样的函数,所以我们自己来实现。 由于给定字符串可能出现多次,所以需要用到 find() 成员函数的第二个参数,每次查找之后,从找到位置往后继续搜索。 直接看代码(这个函数返回替换的次数,如果返回值是0说明没有替换): intstr_replace(string&str,conststring&src,conststring&dest) { intcounter=0; string: : size_typepos=0; while((pos=str.find(src,pos))! =string: : npos){ str.replace(pos,src.size(),dest); ++counter; pos+=dest.size(); } returncounter; } 从给定字符串中删除一给定字串 方法和上面相似,内部使用 erase() 完成。 代码: intstr_erase(string&str,conststringsrc) { intcounter=0; string: : size_typepos=0; while((pos=str.find(src,pos))! =string: : npos){ str.erase(pos,src.size()); ++counter; } returncounter; } 给定一字符串和一字符集,从字符串剔除字符集中的任意字符 intstr_wash(string&str,conststringsrc) { intcounter=0; string: : size_typepos=0; while((pos=str.find_first_of(src,pos))! =string: : npos){ str.erase(pos,1); ++counter; } returncounter; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计案例教程 C+程序设计案例教程C+中string的用法 string字符串的使用方法 C+ 程序设计 案例 教程 string 用法 字符串 使用方法
![提示](https://static.bdocx.com/images/bang_tan.gif)