C++ STL——string
C++ string
历史问题
- C:用字符数组来解决字符串问题,经常操作失误
- C++:针对字符串,优化操作——对常见操作以函数的形式进行了封装
string定义
可以理解string是字符串的变量类型
string str;
string str="abcd";//用双引号里面字符串的形式直接初始化
string中内容访问
- 1、像字符数组一样通过下标访问
- 2、读入读出:
cin&cout - 3、用
c_str()将string类型转换成字符数组用printf输出 - 4、通过迭代器访问
string常用函数
operator+-compare operatorlength()&size()insert()erase()clear()substrstring::nposfind()replace
//代码1:通过下标访问
#include<stdio.h>
#include<string>
using namespace std;
int main(){
string str="abcd";
for(int i=0;i<str.size()/*str.size()同理*/;i++){
printf("%c ",str[i]);
}
return 0;
}
//代码2:读入读出字符串
#include<iostream>
#include<string>
using namespace std;
int main(){
string str;
cin>>str;
cout<<str<<endl;
return 0;
}
//代码3:用printf输出string
#include<stdio.h>
#include<string>
using namespace std;
int main(){
string str="abcd";
printf("%s\n",str.c_str());//将string型str使用c_str()变成字符数组一并输出
return 0;
}
//代码4:通过迭代器访问
#include<stdio.h>
#include<string>
using namespace std;
int main(){
string str="abcd";
//string::iterator it;
for(string::iterator it=str.begin();it!=str.end();it++){
printf("%c",*it);
}
return 0;
}
//代码5:string常用函数——operator+=
#include<iostream>
#include<string>
using namespace std;
int main(){
string str1="abc",str2="xyz",str3;
str3=str1+str2;
str1+=str2;
cout<<str1<<endl;
cout<<str3<<endl;
return 0;
}
//代码6:string常用函数compare operator
#include<iostream>
#include<string>
using namespace std;
int main(){
string str1="aa",str2="aaa",str3="abc",str4="xyz";
if(str1<str2)printf("OK1\n");
if(str1!=str3)printf("OK2\n");
if(str4>=str3)printf("OK3\n");
return 0;
}
//代码7:string常用函数length()&size()
#include<string>
#include<iostream>
using namespace std;
int main(){
string s="abcxyz";
cout<<s.length()<<" "<<s.size()<<endl;//有多少个字符就输出多少,这一点不同于C语言的字符串
return 0;
}
//代码8:string常用函数insert()————str1.insert(position,str2);--->在str1的下标为position位置上后插入str2,其余部分尾随
#include<iostream>
#include<string>
using namespace std;
int main(){
string str="abcxyz",str2="opq";
str.insert(3,str2);//在str的下标为3的位置上处插入str2
cout<<str<<endl;
return 0;
}
//代码9:insert()————截取一段字符串然后插入
/**********笔记**********/
/*
insert(it,it2,it3)--->it是str1的迭代器,it2,it3是str2的迭代器;
该函数的作用就是将str2的 [it2,it3)截取然后插入到str1的it位置上
*/
/**********笔记**********/
#include<iostream>
#include<string>
using namespace std;
int main(){
string str1="abcxyz",str2="opq";
str1.insert(str1.begin()+3,str2.begin(),str2.end());//将str2的一整个全部插入到str1的3号下标
cout<<str1<<endl;
return 0;
}

浙公网安备 33010602011771号