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常见要点总结

  1. string类型可以当作字符数组处理!在一个字符串数组中包含若干个(现为5个)元素,每个元素相当于一个字符串变量。
  2. 并不要求每个字符串元素具有相同的长度,即使对同一个元素而言,它的长度也是可以变化的,当向某一个元素重新赋值,其长度就可能发生变化。
  3. 在字符串数组的每一个元素中存放一个字符串,而不是一个字符,这是字符串数组与字符数组的区别。如果用字符数组存放字符串,一个元素只能存放一个字符,用一个一维字符数组存放一个字符串。
  4. 每一个字符串元素中只包含字符串本身的字符而不包括′\0′。 (如有错误欢迎指正!)

猜你喜欢

转载自blog.csdn.net/weixin_49418695/article/details/123501244
今日推荐