C++ STL string类型

本文详细介绍了C++标准库中string类的使用方法,包括string对象的定义、初始化、读写以及常见操作如连接、替换、比较等。通过示例代码展示了如何利用这些功能进行字符串处理。

要想使用标准C++中string类,必须要包含

#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件

using namespace std;

1:string对象的定义和初始化以及读写

string s1;      默认构造函数,s1为空串

string s2(s1);   将s2初始化为s1的一个副本

string s3("hello");   将s3初始化一个字符串面值副本

string s4(n,'c');   将s4 初始化为字符'c'的n个副本

cin>>s5;  读取有效字符直到遇到空格

getline(cin,s6);  读取字符到遇到换行,空格可读入,直到‘\n’结束

getline(cin,s7,'a'); 一直到‘a’结束,其中任何字符包括'\n'都能够读入

#include<iostream>
using namespace std;
//getline(cin,str);处理后还留有结束符在输入流中,故需要使用cin.get();
//接受最后一个结束符,才能接受后面得输入值。
int main()
{
    string s1,s2("hello"),s3(10,'c'),s4,s5,s6;
    cin>>s4;
    cin.get();
    getline(cin,s5);
    cin.get();
    getline(cin,s6,'a');
    cout<<s1<<endl;
    cout<<s2<<endl;
    cout<<s3<<endl;
    cout<<s4<<endl;
    cout<<s5<<endl;
    cout<<s6<<endl;
}

2:string对象操作

s.empty()  判断是否为空,bool型

s.size() 或 s.length() 返回字符的个数

s[n]  返回位置为n的字符,从0开始计数

s1+s2 连接,看下面例子:

    可用此方法给字符串后面添加字符如:s=s+'a'; 

    a:  string s2=s1+", ";  //对,把一个string对象和一个字符面值连接起来是允许的

    b:  string s4="hello "+", ";   //错,不能将两个字符串面值相加

    c:  string s5=s1+", "+"world";   //对,前面两个相加相当于一个string对象;

    d:  string s6="hello" + ", " +  s2;  //错

(注:字符串尾部追加还可用s.append("abc")函数添加)

s1=s2  替换

s1==s2  相等,返回true或false

!=,<,<=,>,>=  字符串比较,两个字符串短的与长的前面匹配,短的小于长的

    string s7("hello world!"),s8("dear");
    cout<<s7<<endl<<s8<<endl;
    cout<<s7.empty()<<endl;//空返回1
    cout<<s7.size()<<endl;//不包括'\0'
    cout<<s7[0]<<endl;
    cout<<s7<<endl;
    cout<<(s7==s8)<<endl;
    cout<<s7+s8<<endl;

k = s.find(s1);  //s1为string类型,k为int类型,表示下标

s.erase(k,s1.size()); //从k处删除长度为s1.size()的元素 及删除s1

s.insert(k,s2); //在k处插入s2

    string s13,s14,s15;
    s13 = "hello "; s14 = "world";
    s15 = s13+s14;
    cout<<s13<<endl<<s14<<endl<<s15<<endl;
    int k = s15.find("world");
    s15.erase(k,sizeof("world")-1);
    s15.insert(k,"James");
    cout<<s15;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值