入门字符串学习笔记
- 知识点:
- 一、字符串的定义 string s; 字符串 字符数组 s[0],s[1],…. S串的第一个字符、第二个字符
- 二、字符串定义并初始化 string s = “abcdef”; strings(“hello!”); string s(100,”*”); \100个星号
- 三、连接字符串 + s1串变量+s2串变量 (串常量) s+=字符 或 s1+=s2 (s1在前s2在后,并赋值给s1)
- 四、直接赋值字符串 string s1,s2; s1 = “abcd” s2 = s 1+“efgh”
- 五、直接比较大小 if(s1 > s2) … 字母比较大小按字典顺序
- 六、读一行(包含空格) getline(cin,s); 如果cin>>s 只读一个单词 getchar() getline(cin,s)
- 七、字符串处理函数:
- 例题:P5734 【深基6.例6】文字处理软件
入门字符串学习笔记
知识点:
一、字符串的定义 string s; 字符串 字符数组 s[0],s[1],…. S串的第一个字符、第二个字符
二、字符串定义并初始化 string s = “abcdef”; strings(“hello!”); string s(100,”*”); \100个星号
三、连接字符串 + s1串变量+s2串变量 (串常量) s+=字符 或 s1+=s2 (s1在前s2在后,并赋值给s1)
四、直接赋值字符串 string s1,s2; s1 = “abcd” s2 = s 1+“efgh”
五、直接比较大小 if(s1 > s2) … 字母比较大小按字典顺序
六、读一行(包含空格) getline(cin,s); 如果cin>>s 只读一个单词 getchar() getline(cin,s)
七、字符串处理函数:
- 插入子串 s.push_back(‘a’); 只能在尾部插入一个字符 s.insert(开始位置pos,插入字符串s1)
- 求字符串长度 s.size() s.length() 取字符串的子串/裁剪 s.substr(开始位置pos,字串长度len);
- 删除子串 s.erase(开始位置pos,删除长度len);
- 替换子串 s.replace(开始位置pos,替换长度len,换上的子串s1)
- 查找子串 s.find(子串s2,[开始位置pos]) 不写pos默认从头开始查找 找不到 == string::npos 或 == -1
- 大写/小写 tolower(字符) 转小写、 toupper(字符) 转大写 s[i]= tolower(s[i]);
- transform(s.begin(),s.end(),s.begin(),::tolower/toupper)
- 排序 sort(s.begin(),s.end()) s串从s.begin()开始到s.end按字典排序
- 数字转字符串 to_string(数字)
- 数字串转数字 stoi(),stoll(),stof(),stod()
例题:P5734 【深基6.例6】文字处理软件
#include<bits/stdc++.h>
using namespace std;
int main()
{
int q,n,a,b;
string s,str;
cin>>q;
cin>>s;
for(int i=1;i<=q;i++)
{
cin>>n;
if(n==1)
{
cin>>str;
s += str;
cout<<s<<endl;
}
else if(n==2)
{
cin>>a>>b;
s = s.substr(a,b); //(pos,len)
cout<<s<<endl;
}
else if(n==3)
{
cin>>a>>str;
s.insert(a,str);
cout<<s<<endl;
}
else if(n==4)
{
cin>>str;
if(s.find(str)>=100)
cout<<-1<<endl;
else cout<<s.find(str)<<endl;
}
}
return 0;
}
完......
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】