
C++中string字符串类型详解及常见方法分析
·
因为C中除了字符数组以外没有直接与字符串相关的变量类型,在处理一些问题的时候不是很方便。所以C++提供新的数据类型——字符串类型(string类型),在使用方法上,它和char、int类型一样,可以用来定义变量,这就是字符串变量——用一个名字代表一个字符序列。
实际上,string并不是C++语言本身具有的基本类型,它是在C++标准库中声明的一个字符串类,用这种类可以定义对象。每一个字符串变量都是string类的一个对象(注意头文件形式 #include<string>)。
string可以构造一个字符串变量,那么它的操作有哪些呢。它包含在string库中(不是string.h没有.h),它可以和定义一个字符一样定义一个字符串变量,而且强大的C++还内置了各种函数,基本实现不用再手写操作函数。而且可以进行字典序的比较和串操作。
一、string字符串变量常用方法
方法总结及部分结果展示如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s="61116";
string s2="71117";
cout<<s+s2<<endl;//连接两个字符串
cout<<(s>s2) <<endl;//比较两个字符串的大小
//上面比较两个字符串的大小结果是 true 或者 false 在这里是 1 或者 0
cout<<s.substr(3,3)<<endl;//substr(n,l) 从第n个位置截取长度为l的字串,若超过最大长度,则截取到最后。
cout<<s.substr(3,5)<<endl;
s.append(2,'b');//s.append(n,c);在s串后面加入n个c字符(append还有其他用法,详情可百度)
s.erase(s.begin(),s.begin()+2);//s.erase(l,r);删除某个区间,l,r都为迭代器
s.erase(it);//删除一个字符,it为迭代器
s.size();//返回字符串s的长度大小
s.begin();//返回首位置的迭代器
s.end();//返回末位置的迭代器
s.insert(it,ch);//在it位置插入ch字符,it为迭代器
s.resize(len,c);//把字符串当前大小置为len,并用c填充不足的部分
s.empty();//判断是否为空串
s.length();//返回字符串的长度
s.max_size();//返回当前系统string对象可存放的最大长度
s.capacity();//返回当前容量
s.at(k);//返回第k+1个字符(该用法会坚持是否越界)
s.c_str();//返回C字符串的指针,内容为s串
s.find(s1);//查找s中是否包含s1,并返回头位置,找不到则返回string::npos
s.replace(k,x,ch);//从k位置开始,把后面的x个元素替换为ch(还有很多其他用法)
s.swap(s2);//交换两个string字符串
return 0;
}
二、string常见要点总结
- string类型可以当作字符数组处理!在一个字符串数组中包含若干个(现为5个)元素,每个元素相当于一个字符串变量。
- 并不要求每个字符串元素具有相同的长度,即使对同一个元素而言,它的长度也是可以变化的,当向某一个元素重新赋值,其长度就可能发生变化。
- 在字符串数组的每一个元素中存放一个字符串,而不是一个字符,这是字符串数组与字符数组的区别。如果用字符数组存放字符串,一个元素只能存放一个字符,用一个一维字符数组存放一个字符串。
- 每一个字符串元素中只包含字符串本身的字符而不包括′\0′。 (如有错误欢迎指正!)
更多推荐
所有评论(0)