C++ string类字符串的基本用法详解:初始化、拼接、插入、查找、删除、其他常用方法
一、初始化:string str;//定义一个空的字符串char cstr[] = "I have a dream"; //定义一个字符数组str = "I have a dream";//字符串赋值方法1string s1 = str;string s2 = "I have a d...
·
一、初始化:
string str; //定义一个空的字符串
char cstr[] = "I have a dream"; //定义一个字符数组
str = "I have a dream"; //字符串赋值方法1
string s1 = str;
string s2 = "I have a dream"; //s1,s2直接赋值,两者的值是一样的
string s3(str);
string s4("I have a dream"); //s3,s4调用复制构造函数,两者的值是一样的
string s5(cstr); //将字符数组作为s5的值
string s6(4, 'I'); //生成一个字符串“IIII”,包含4个I
string s7(str, 2); //将str下标从2开始的子串赋值给s7,s7为“have a dream”
string s8(cstr, 6); //将cstr前6个字符赋值给s8,s9为“I have”
string s9(str, 2, 5); //将str从下标为2,开始,长度为4的子串赋值给s9,s9为“have”
string s10(str.begin()+2,str.begin()+6);//将str下标区间为[str.begin()+2,str.begin()+6)的子串赋值给s10
二、拼接:
string str1("abcd"),str2("1234");
str1+=str2;//将str2拼接到str1后面,str1=“abcd1234”
str1.append(str2);//将str2拼接到str1后面,str1=“abcd1234”
str1.append(str2,1,2);//将str2下标为1至下标为2的字符串,拼接到str1后面,str1=“abcd23”
str1.append(3,'a');//将3个字符“a”,拼接到str1后面,str1=“abcdaaa”
str1.push_back('a');//将字符‘a’拼接到str1末尾
三、插入:
string str = "I have a dream";
str.insert(1,2,'a');//在str中,从下标为1的位置开始,插入2个“a”,str为“Iaa have a dream”
str.insert(2,"sister ");//在str中,下标为2的位置开始,插入字符串“sister ”,str为“I sister have a dream”
str.insert(2,"abcd",2);//在str中,下标为2的位置开始,插入字符串“abcd”的前两个字符,str为“I abhave a dream”
str.insert(2,"abcd",1,2);//在str中,下标为2的位置开始,插入字符串“abcd”中从下标为1开始到下标为2结束的字符串,str为“I bchave a dream”
四、查找:
int position;
string str = "I have a dream";
position=str.find("ha");//str中“ha”开始出现的位置为2,则position=2
position=str.find("apple");//str中没有“apple”,则position=-1
position=str.find_first_of("a");//str中“a”第一次出现的位置,则position=3
position=str.find_first_of("l");//str中没有“l”,则position=-1
position=str.find_first_not_of("I ahavez");//返回str中第一个没有出现在“I ahavez”中的字符的位置,此处“d”为第一个没有出现在str,则position=9
position=str.find_first_not_of("I have a dream");//返回str中第一个没有出现在“I ahavez”中的字符的位置,此处没有这种字符,则position=-1
position=str.find_last_of("a");//str中“a”最后一次出现的位置,则position=3
position=str.find_last_of("l");//str中没有“l”,则position=-1
position=str.find_last_not_of("I ahavez");//返回str中最后一个没有出现在“I ahavez”中的字符的位置,此处“m”为第一个没有出现在str,则position=13
position=str.find_last_not_of("I have a dream");//返回str中最后一个没有出现在“I have a dream”中的字符的位置,此处没有这种字符,则position=-1
position=str.find("a",5);//从str中,下标为5的位置开始,向后查找字符串“b”,则position=13
position=str.rfind("a");//从str中,反向查询,“a”最后出现的位置,则position=12
五、删除:
string str = "I have a dream";
str.erase(str.begin()+2);//删除str字符串中指定的字符,str为“I ave a dream”
str.erase(2,4);//删除str中从下标2开始的4个字符,str为“I a dream”
str.erase(str.begin()+2,str.end()-8);//删除str下标区间为[str.begin()+2,str.end()-8)的子串
str.pop_back();//删除str字符串最后一个字符
str.clear();//将字符串的内容清空,让str成为一个空字符串(长度为0个字符)
六、其他常用方法:
string str1,str2;
string str = "I have a dream";
str1=str.substr(2,5);//获取str字符串从下标位置为2开始到下标位置为5结束的子串,赋值给str1
str2=str.substr(2);///获取str字符串从下标位置为2开始到m末尾的子串,赋值给str1
str1="1234";
str2="abcd";
int len;
str1.swap(str2);//交换str1和str2的内容,此时str1="abcd",str2="1234"
len=str1.length();//输出字符串的长度
len=str1.size();//输出字符串的长度
int em=str1.empty();//判断str1是否为空,为空返回1,不为空返回0
reverse(str2.begin(),str2.end());//将字符串反转,需要头文件<algorithm>
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献5条内容
所有评论(0)