C++ string类-字符串

本文详细介绍了C++中std::string的使用,包括定义、初始化、获取长度、访问元素、元素操作、字符串拼接、比较操作、常用函数如find、substr和swap。通过实例展示了如何在字符串中插入、删除、清空元素,以及如何查找子串和交换字符串内容。此外,还讲解了string的比较运算符和常用函数的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头文件:#include<string>

1. string 的定义

	string str;

2. string 的初始化

可以直接给字符串变量赋值。

	string str="hello";
	cout<<str<<endl;
	//hello

3. string 的长度

返回当前字符串长度的函数有 size() 和 length(),二者功能基本相同。

	string str="hello";
	cout<<str.size()<<endl;
	//5

4. string 元素的访问

① 可以像数组那样通过元素下标进行访问,下标从 0 到 size()-1
② 可以通过迭代器进行访问,迭代器类似于指针

    string str="hello";
    for(int i=0;i<str.size();i++){
        cout<<str[i]<<" ";
    }
    //h e l l o 
    for(string::iterator it=str.begin();it!=str.end();it++){
        cout<<*it<<" ";
    }
    //h e l l o 

5. string 中的元素操作

常用的元素操作有:

元素操作含义
insert()在任意位置插入元素
erase()在任意位置删除元素
clear()将字符串清空

其中的erase() 函数:
erase(pos,n); 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符

	string str="hello";
    str.insert(str.size()," world");
    cout<<str<<endl;
    //hello world
    str.erase(0,5);
    cout<<str<<endl;
    // world
    str.insert(0,"the");
    cout<<str<<endl;
    //the world
    str.erase(4);
    cout<<str<<endl;
    //the w
    str.clear();
    cout<<str<<endl;
    //

6. string 的运算符

string 可以像数组一样进行运算,但不是进行加减乘除这样的逻辑运算,而是可以将两个或多个字符串拼接成一个更长的字符串。运算符有“+” 和 “+=”。

    string str="hello";
    str+="world"
    cout<<str<<endl;
    //helloworld

7. string 的比较

string 可以按照字典序进行大小比较,比较运算符有 > , < , >= , <=,判断是否相等:==, !=

	string s1="a";
    string s2="ab";
    string s3="bb";
    string s4="a";
    if(s1==s4) printf("s1==s4\n");
    if(s1<s2) printf("s1 < s2\n");
    if(s3>s2) printf("s3 > s2\n");
    //s1==s4
    //s1 < s2
    //s3 > s2

8. string 的常用函数

find() :在字符串中寻找特定字符或字符串。若找到相应的字符或字符串则返回其在该字符串中第一次出现的位置,若找不到则返回 string::npos(-1)
substr(pos , len) :返回从 pos 位开始,长度为 len 的子串。若省略第二个参数 len,或 len 超过了字符串的长度,则求出来的子串为从 pos 位一直到字符串结束的部分。
swap() :交换两个string对象的内容。

    string str="hello";
    cout<<str.find('e')<<endl;
    if(str.find('w')==string::npos){
        printf("not found\n");
    }
    //1
    //not found
    string st=str.substr(1,2);
    cout<<st<<endl;
    //el
    str.swap(st);
    cout<<str<<endl;
    cout<<st<<endl;
    //el
    //hello
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值