C++中string容器用法

目录

 

string容器说明:

1、string对象的创建

2、string对象的赋值

3、string字符串的一些常用方法

4、string中的一些逻辑运算与简便操作

5、string常用方法的操作示例


string容器说明:

string型变量的使用并不需要特殊的头文件,但是一部分的string字符串的操作在使用时需要加上头文件:#include<string>

1、string对象的创建

string s;//创建一个空字符串,长度为0

2、string对象的赋值

(1)直接给字符串对象赋值

string s;

s="abcdefg";

(2)把字符指针赋值给一个字符串对象

string s;

char a[1000];

scanf("%s",&a);//scanf的输入速度比cin快,且scanf不支持string对象

s=a;

3、string字符串的一些常用方法

(1)s.append(str);//从字符串s尾部的添加字符串str,只能添加字符串,不能添加字符

(2)s.insert(it+n,c);//it是迭代器,把字符c插入迭代器位置为n的地方(下标从0开始)

(3)s.insert(p,str);//把字符串str插入到下标p的位置(下标从0开始)

(4)s.erase(it+n);//it是迭代器,删除迭代器位置为n的元素(下标从0开始)

(5)s.erase(it+m,it+n);//it是迭代器,删除迭代器位置为m至n-1区间的元素(下标从0开始)

(6)s.length();//返回字符串长度

(7)s.empty();//判断字符串是否为空

(8)s.replace(p,n,str);//从下标p开始,把后面的n个字符替换成字符串str

(9)s.find(c/str);//返回字符串s中第一次出现字符c或者字符串str的下标值

(10)s.compare();//比较两个字符串的大小,如果str1==str2返回0,如果str1>=str2返回一个正数,如果str1<=str2返回一个负数

(11)s.begin();//返回字符串的首地址

(12)s.end();//返回字符串的尾地址

(13)s.clear();//清空字符串,一般如果清空一个字符串就直接给它赋空字符串,即s="";

4、string中的一些逻辑运算与简便操作

(1)s1>/</==/!=/>=/<=s2;//两个字符串可以进行逻辑判断

(2)s1=s2;//两个字符串相互赋值

(3)s1=s1+s2;//在s1尾部追加字符串或者字符

(4)s1=s2+s3;//两个字符串进行相加,结果与两个字符串的相加顺序有关  例:s2="asd"   s3="qwe"   s1="asdqwe"

5、string常用方法的操作示例

#include<iostream>
#include<string>
using namespace std;
int main()
{
    //定义一个字符串变量
    string s;
    //从字符串s尾部添加一串字符串
    s.append("hello!");
    cout<<"s.append():  "<<s<<endl;
    //在指定迭代器位置插入一个字符
    s.insert(s.begin()+1,'q');
    cout<<"s.insert():   "<<s<<endl;
    //在指定位置插入一个字符串
    s.insert(2,"asd");
    cout<<"s.insert():   "<<s<<endl;
    //删除指定迭代器位置的一个字符
    s.erase(s.begin()+1);
    cout<<"s.erase():   "<<s<<endl;
    //删除迭代器指定区间的字符
    s.erase(s.begin()+1,s.begin()+4);
    cout<<"s.erase():   "<<s<<endl;
    //返回字符串的长度
    cout<<"s.length():   "<<s.length()<<endl;
    //判断字符串是否为空
    if(s.empty())
    cout<<"Is empty"<<endl;
    else
    cout<<"Not empty"<<endl;
    //字符串替换
    s.replace(2,3,"asd");
    cout<<"s.replace():   "<<s<<endl;
    //查找字符
    cout<<"s.find():   "<<s.find('a')<<endl;
    //查找字符串
    cout<<"s.find():   "<<s.find("ea")<<endl;
    //比较两个字符串的大小
    string s1,s2;
    s1="asd";
    s2="qwe";
    if(s1.compare(s2)==0)
    cout<<"s1=s2"<<endl;
    else if(s1.compare(s2)>0)
    cout<<"s1>s2"<<endl;
    else if(s1.compare(s2)<0)
    cout<<"s1<s2"<<endl;
    //简便操作
    string s3,s4;
    s3="zxc";
    s1=s1+s2;
    cout<<"s1:   "<<s1<<endl;
    s4=s1+s3;
    cout<<"s4:   "<<s4<<endl;
    //清空字符串
    s="";
    //判断字符串是否为空
    if(s.empty())
    cout<<"Is empty"<<endl;
    else
    cout<<"Not empty"<<endl;
}
结果:
s.append():  hello!     
s.insert():   hqello!   
s.insert():   hqasdello!
s.erase():   hasdello!
s.erase():   hello!
s.length():   6
Not empty
s.replace():   heasd!
s.find():   2
s.find():   1
s1<s2
s1:   asdqwe
s4:   asdqwezxc
Is empty

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值