首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >string的学习和使用

string的学习和使用

作者头像
再睡一下就好
发布2025-06-11 08:41:55
发布2025-06-11 08:41:55
3090
举报
文章被收录于专栏:深究算法深究算法

前言

什么是string?

string 是C++标准库提供的字符串

string与char s[ ]的区别是什么?

①char s[ ]本质上还是数组,长度固定;string长度不限;

②string本质是类,其中包含有大量函数,方便操作;

③string中重载了如‘+’ ’>' '<"等符号,便于操作;

④可以将string理解为包含了大量函数的char s[ ]。


一、string的创建与读入

string 包含在<string>头文件中。

1.常用的string创建有如下几种:

这里给出了四种创建方式,前三种应该问题不大,着重说一下第四种:

string s3(7,‘a');这里将’a‘字符复制了7遍后存入字符串s3.

string的构造函数重载了七种,如下图,有兴趣的可自行探索:

2.string的读入

常见的cin读入有着不能读入空格的缺陷,在一些场景十分恼人。而string还重载了getline以解决:

使用:getline(cin,s);读入时直到遇到’\n'换行符才结束

二、string中的常用函数

1.find()

在字符串中寻找子字符串出现的位置,找到则返回其下标,没有则返回-1。

使用方法:

s.find("你要找到字串",pos);pos是指从该位置往后找,若没有输入pos则默认从头开始找。

2.substr()

截取子字符串,当长度超过原字符串时,截取剩余的。

使用方法:

s.substr(pos,len);len是你要截取的长度,若不给入,则默认从pos位置取完剩下的。

3.size()

返回当前字符串有效字符长度。

使用方法:

int s_size=s.size();返回的是size_t类型的数据(从0开始,没有负数,size_t在32位环境下是4字节,64位时是8字节

4.empty()

检测字符串是否为空,是返回true,不是返回false;

bool jud=s.empty()

5.clear()

清空字符串。

s.clear();

三、遍历

1.operator[ ]

string重载了【】,,可以通过下标访问。

2.迭代器(可以反着遍历)

这里的迭代器可以理解为封装过后的“指针”;

(1)正着遍历:begin+end;

使用方法: string::iterator it = s.begin();iterator为关键字,it为变量名

(2)反着遍历:rbegin+rend;

string::reverse_iterator rit = s.rbegin();reverse_iterator为关键字

3.范围for

auto,自动推测变量类型,中间由‘ :’隔开

范围for的底层是由迭代器实现的。

四、类对象的修改操作

1.push_back()

作用:在字符串尾添加单个字符。

用法:s.push_back()

2.+=

作用:string重载了+=,使之可用于在字符串后追加字符串或字符。该方式十分常用。

用法:s+="string!",如下图:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、string的创建与读入
    • 1.常用的string创建有如下几种:
    • 2.string的读入
  • 二、string中的常用函数
    • 1.find()
    • 2.substr()
    • 3.size()
    • 4.empty()
    • 5.clear()
  • 三、遍历
    • 1.operator[ ]
    • 2.迭代器(可以反着遍历)
    • 3.范围for
  • 四、类对象的修改操作
    • 1.push_back()
    • 2.+=
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档