丹东建设银行网站,百度收录左侧带图片的网站,亚马逊官网首页,移动网站 制作博主简介#xff1a;Hello大家好呀#xff0c;我是陈童学#xff0c;一个与你一样正在慢慢前行的人。 博主主页#xff1a;陈童学哦 所属专栏#xff1a;CSTL 前言#xff1a;Hello各位小伙伴们好#xff01;欢迎来到本专栏CSTL的学习#xff0c;本专栏旨在帮助大家了解… 博主简介Hello大家好呀我是陈童学一个与你一样正在慢慢前行的人。 博主主页陈童学哦 所属专栏CSTL 前言Hello各位小伙伴们好欢迎来到本专栏CSTL的学习本专栏旨在帮助大家了解并熟悉使用C中的STLC中的STL标准模板库是相当好用的所以大家赶紧订阅一起学起来叭那么话不多说接下来就进入本文C中string的学习。 站点 ⭐一、string的简介⭐二、string的常用输入方法⭐三、string中常用的成员函数⭐四、string的大小比较⭐五、string的遍历方法⭐六、string的真题巩固⭐七、写在最后 ⭐一、string的简介
string的中文译为字符串是C在C语言中的char字符类型上的延伸。C中封装有许多关于string的函数可以方便我们完成一些关于字符串的操作。而且string的空间大小是动态变化的可以减小不必要空间的浪费。
⭐二、string的常用输入方法
1.通过cin输入遇到空格停止输入 例
#includeiostream
using namespace std;
int main()
{string s1,s2; //定义字符串s1和s2 cins1s2; //通过cin输入 cout字符串s1为s1endl; //输出字符串s1 cout字符串s2为s2endl; //输出字符串s2
}输入
ctx 666运行结果
字符串s1为ctx
字符串s2为6662.通过getline输入遇到换行符时停止输入 例
#includeiostream
using namespace std;
int main()
{string s1,s2; //定义字符串s1和s2 getline(cin,s1); //通过getline输入 getline(cin,s2); cout字符串s1为s1endl; //输出字符串s1 cout字符串s2为s2endl; //输出字符串s2
}输入
ctx1 666
ctx2 777运行结果
字符串s1为ctx1 666
字符串s2为ctx2 777需要注意的是 通过cin输入会屏蔽掉前置换行和空格简单来讲就是通过cin输入得到的不可能是空字符串。而getline不会屏蔽掉换行符但可能会使得输入出现一些出乎意料的错误。
⭐三、string中常用的成员函数 string中的一些常用函数 size()//返回字符串的长度
insert()//插入字符串
append()//添加字符串
erase()//删除指定字符时间复杂度O(n)n为字符串长度
clear()//清空字符串
substr()//截取某段字符串
back()//获取最后一个字符
pop_back()//删除最后一个字符时间复杂度O(1)
empty()//判断字符串是否为空string中的一些功能函数 to_string() //将基本类型的值转换为字符串
//需要注意的是转换char类型时是将其转换为它的ASCII值
stoi() //将字符串类型转换为int类型
atoi() //与stoi的作用相同区别就是stoi()处理string类型atoi()处理char类型常在C语言中使用
stol()//将字符串类型转换为long类型
stoll()//将字符串类型转换为long long类型
stof()//将字符串类型转换为float类型
stod()//将字符串类型转换为double类型
stold()//将字符串类型转换为long double类型
⭐四、string的大小比较
string之间的比较是通过每个字母的ASCII码逐一进行比较的 例
#includeiostream
using namespace std;
int main()
{string s1,s2; //定义字符串s1和s2 s1abc;s2acb;//s1和s2进行大小比较时先比较各自的第一个字符 //第一个字符都为a相等s1的第二个字符为b//s2的第二个字符为c而b的ASCII码小于c//所有字符串s1小于s2 if(s1s2){couts1s2endl;}else if(s1s2){couts1s2endl;}if(s1s2){couts1s2endl;}
}运行结果
abcacb⭐五、string的遍历方法
1、通过下标遍历 例
#includeiostream
using namespace std;
int main()
{string sctx666;for(int i0;is.size();i){couts[i];}
}2、通过foreach遍历
#includeiostream
using namespace std;
int main()
{string sctx666;for(char c:s){coutc;}
}注意通过foreach遍历简单方便但是它有一个弊端就是不能够逆序遍历。
⭐六、string的真题巩固
下面是PTA中团体程序设计天梯赛-练习集中的一道L1阶题题目考验更多的是逻辑性的点难度不大各位小伙伴们可以拿来练练手巩固string的相关知识。 下方为题目链接 --------------------L1-058 6翻了-------------------- 题目详情 “666”是一种网络用语大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”意思是“6翻了”实在太厉害的意思。如果你以为这就是厉害的最高境界那就错啦 —— 目前的最高境界是数字“27”因为这是 3 个 “9”
本题就请你编写程序将那些过时的、只会用一连串“6666……6”表达仰慕的句子翻译成最新的高级表达。
输入格式 输入在一行中给出一句话即一个非空字符串由不超过 1000 个英文字母、数字和空格组成以回车结束。
输出格式 从左到右扫描输入的句子如果句子中有超过 3 个连续的 6则将这串连续的 6 替换成 9但如果有超过 9 个连续的 6则将这串连续的 6 替换成 27。其他内容不受影响原样输出。
输入样例 it is so 666 really 6666 what else can I say 6666666666 输出样例 it is so 666 really 9 what else can I say 27 AC代码 #includebits/stdc.h
using namespace std;
int main(){string s;getline(cin,s);int i,num0,j;for(i0;is.size();i){if(s[i]6){num;}else{if(num3){for(j0;jnum;j){printf(6);}}else if(num3 num9){printf(9);}else{printf(27);}num0;couts[i];}}if(num0){if(num3){for(j0;jnum;j){printf(6);}}else if(num3 num9){printf(9);}else{printf(27);}}return 0;
}
⭐七、写在最后
OK本文的学习就到此结束啦希望本文可以帮助到各位有需要的小伙伴们喔也希望各位小伙伴们不要吝惜手里的三连哦❤️❤️❤️ 回头看轻舟已过万重山向前看前路漫漫亦漫漫。 那么我们下期再见拜拜ヾ(•ω•)o