字符串进阶-字符串函数应用
c++提供了大量的字符串函数,供我们在解题时使用。
一、常用函数介绍
1-长度 (有返回值)
a.size() 或 a.length()
Copy
2-查找(有返回值)
a.find("hello") //返回子串hello在a中第一次出现时开头字母h的下标
a.find('h') //返回字符h在a中第一次出现时的下标
a.find(b) //返回b在a中第一次出现时的相关下标信息(b可以是字符或字符串)
a.find('h',2)//表示从下标2开始查找字符h第一次出现的位置
Copy
关于find函数的返回值判定:
很明显a中存在待找字符(串)时,会返回相关下标值;
不存在的时候,会返回 string :: npos ;
if 条件表达式: a.find("hello") == string::npos 表示找不到
3-插入(无返回值)
a.insert(2,"hello"); //在a中下标2开始插入“Hello",使a的值变化
举例:string a="topscoding";
a.insert(2,"hello");
cout<<a;
运行结果:tohellopscoding
Copy
4-删除(无返回值)
a.erase(2,3); //在a中下标2开始,删除3个字符,使a的值变化
举例:string a="topscoding";
a.erase(2,3);
cout<<a;
运行结果:tooding
Copy
5-提取(有返回值)
a.substr(2,3);//提取a中下标2开始的3个字符(a本身值不变,这相当于是复制过程)
举例:string a="topscoding";
cout<<a.substr(2,3);
运行结果:psc
Copy
6-翻转(无返回值)
reverse(a.begin(),a.end());//将字符串a的内容完全倒置,使a的值变化。
举例:string a="topscoding";
reverse(a.begin(),a.end());
cout<<a;
运行结果:gnidocspot
Copy
7-替换(无返回值)
a.replace(2,3,"hello");//将字符串a中,从下标2开始连续删除3个字符,并用”hello"替换(替换内容与待替换内容长度可以不同)
举例:string a="topscoding";
a.replace(2,3,"hello");
cout<<a;
运行结果:tohellooding
Copy
replace函数使用过程中,代替换内容可以是字符,但 替换内容 必须是字符串。
8-判空(有返回值)
a.empty() //串空返回1(true),非空返回0(false)。
举例:string a="topscoding";
if(a.empty()==1) cout<<"haha";
else cout<<"wuwu";
运行结果:wuwu
Copy
9-清空(无返回值)
a.clear(); //将a的内容清空,变为空串
举例:string a="topscoding";
a.clear();
cout<<a.size();
运行结果:0
Copy
10-追加(无返回值)
a.append("hello"); //将a的内容增添一截
举例:string a="topscoding";
a.append("hello");
cout<<a;
运行结果:tposcodinghello
Copy
函数相关题目
1、回文密码(