一文读懂C++ String类在算法竞赛中的常见用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了一文读懂C++ String类在算法竞赛中的常见用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2651字,纯文字阅读大概需要4分钟。
内容图文
一文读懂C++ String类在算法竞赛中的常见用法
string 相较于C语言的字符数组可方便太多了,在算法竞赛中能大大节省我们的时间。以下是我在刷题中会使用到的常见String用法。注释都写好了。
#include <iostream>
#include <string>
using namespace std;
int main(){
//1、字符串拼接
string s1 = "Hello";
string s2 = "World!";
string s3 = s1 + s2;
cout<< s3 <<endl; //输出为HelloWorld!
s3.append("123"); //字符串自加
cout<< s3 <<endl; //输出为HelloWorld!123
//2、字符串输入输出
// cin >> s3; //输入Hello World! cin是以空格,回车作为结束输入的标志
// cout<< s3 <<endl; //输出为Hello
//3、读取一行字符
// getline(cin, s3); // 读取??的字符串,包括空格 输入Hello World!
cout<< s3 <<endl; //输出为Hello World!
//4、获取字符串的长度
int lens1 = s1.length();
cout<< lens1 <<endl; //输出为5
int lens2 = s2.size();
cout<< lens2 <<endl; //输出为6
//5、将字符串当成字符数组使用
cout<<s1[0]<<endl; //输出为H
cout<<s1[1]<<endl; //输出为e
cout<<s1[2]<<endl; //输出为l
//6、字符串与字符数组的互换
//字符串转字符数组
//方法1
char a[100];
int lens = s1.copy(a,s1.size());
a[lens] = ‘\0‘;
printf("%s\n",a); //输出Hello
//方法2
strcpy(a,s2.c_str());
printf("%s\n",a); //输出World!
//字符数组转字符串
string s5(a);
cout<<s5<<endl; //输出World!
//7、字符串的比较
s1 = "abc";
s2 = "abb";
if (s1 > s2) cout<<"yes1"<<endl; //输出yes1 按照字典序比大小
s1 = "Abc";
s2 = "abb";
if (s1 > s2) cout<<"yes2"<<endl; //不输出,大小写敏感,且大写字母的值小于小写字母的值 按照字典序比大小
s1 = "A";
s2 = "a";
if (s1 < s2) cout<<"yes3"<<endl; //输出yes3 大写字母的值小于小写字母的值
//8、字符串的子串
s1 = "hello World!";
s2 = s1.substr(2,5);
cout<<s2<<endl; //输出 llo W 从下标2开始 截取5个字符
s2 = s1.substr(3);
cout<<s2<<endl; //输出 llo W 从下标3开始 截取3到末尾的所有字符
//9、查找字符串的子串
int n = s1.find("World");
cout<<n<<endl; //输出6 即从下标6开始就是这个匹配的字符
cout<<s1.find("o")<<endl; //输出4 从前往后查找输出最先匹配到的下标
cout<<s1.rfind("o")<<endl; //输出7 从后往前查找输出最先匹配到的下标
cout<<s1.find("oo")<<endl; //输出18446744073709551615 额,反正就是没有找到
//10、替换字符串
s1 = "hello World!";
s1.replace(0,5,"fuck");
cout<<s1<<endl; //输出fuck World!
//指定替换 例如将World! 中的orl 替换成ORL
n = s1.find("orl");
s1.replace(n,3,"ORL");
cout<<s1<<endl; //输出fuck WORLd!
//11、删除子串
s1.erase(n,3); //n表示位置 3表示删除三个字符
cout<<s1<<endl; //输出fuck Wd!
//12、添加子串
s1.insert(5,"aaa");//5表示位置 "aaa"表示增加的字符串
cout<<s1<<endl; //输出fuck aaaWd!
//13、STL 操作string
string s("afgc1bed3");
string::iterator p = find(s.begin(), s.end(), ‘c‘);
if (p!= s.end())
cout << p - s.begin() << endl; //输出3 相当于c的指针-头指针
sort(s.begin(), s.end()); //字符串排序
cout << s << endl; //输出 13abcdefg
//其余STL操作就不演示了,基本上都是支持的
return 0;
}
原文:https://www.cnblogs.com/xwxz/p/14719027.html
内容总结
以上是互联网集市为您收集整理的一文读懂C++ String类在算法竞赛中的常见用法全部内容,希望文章能够帮你解决一文读懂C++ String类在算法竞赛中的常见用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。