C++中string类的常用函数

这篇具有很好参考价值的文章主要介绍了C++中string类的常用函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


引言:在C语言中对于字符串的一些操作,例如在字符串末尾增加字符,对字符串拷贝等,我们可以通过调用库中函数来完成这些操作,在C++中,我们把这些常规操作封装成了string类,可以通过类对象直接调用这些函数,使得更加符合了面向对象的思想。

默认成员函数

C++中string类的常用函数

常见构造函数(constructor)

C++中string类的常用函数

int main()
{
	string s1;//无参构造初始化为空字符串
	string s2("abcdefg");//用C-string来构造string类对象
	string s3(s2);//拷贝构造函数
	string s4(5, '*');//string类对象中包含n个字符c
	return 0;
}

string类的容量操作

C++中string类的常用函数

size()

作用:返回字符串的有效字符长度

	string s6 = "abcdefg";
	int size = s6.size();//返回7

empty()

作用:检测字符串是否为空串,是返回true,否则返回false

	string s7;
	string s8 = "abcdef";
	s7.empty();//返回true
	s8.empty();//返回false

capacity()

作用:返回空间总大小

在VS2019中默认给string对象开辟15字节,并且以原容量的二倍进行扩容

	string s;
	cout << s.capacity() << endl;//输出15
	s += "abcdefghijklmnop";
	cout << s.capacity() << endl;//输出31

在vim中有多少字符空间就有多大

	string s;
	cout << s.capacity() << endl;//输出0
	s += "abcdefghijklmnop";
	cout << s.capacity() << endl;//输出16

reserve()

作用:为字符串预留空间
注意区分:reserve是保留,预留 reverse是翻转

在VS2019中

	string s1 = "abc";
	cout << s1.capacity() << endl;//输出15
	s1.reserve(100);
	cout << s1.capacity() << endl;//输出111

在vim中

	string s1 = "abc";
	cout << s1.capacity() << endl;//输出3
	s1.reserve(100);
	cout << s1.capacity() << endl;//输出100

clear()

C++中string类的常用函数

作用:清空有效字符
注意:clear()函数没有返回值
VS2019中

	string s9 = "abcdef";
	cout << s9.capacity() << endl;//返回15
	cout<<s9.empty()<<endl;//返回false
	s9.clear();//清空字符串
	cout << s9.capacity() << endl;//返回15
	cout << s9.empty() << endl;//返回true

vim中

	string s9 = "abcdef";
	cout << s9.capacity() << endl;//返回6
	cout<<s9.empty()<<endl;//返回false
	s9.clear();//清空字符串
	cout << s9.capacity() << endl;//返回6
	cout << s9.empty() << endl;//返回true

可以看到在清除字符后字符串的原有容量并不会减小,size会变为0

resize()

作用:调整大小,将有效字符的个数改成n个,如果有多出的空间用字符c填充
C++中string类的常用函数

	string s3 = "abcdefg";
	s3.resize(4);//缩小
	cout << s3 << endl;//输出abcde
	string s4 = "abcde";
	s4.resize(10, 'd');//扩大
	cout << s4 << endl;//输出abcdeddddd//多出来5个字节用字符‘d’来进行填充
	//扩大时默认使用0来进行填充

string类对象的访问及遍历操作

C++中string类的常用函数
C++中string类的常用函数

重载 [ ]

	string s4 = "abcdefg";
	for (int i = 0; i < s4.size(); i++)
	{
		cout << s4[i] << " ";
	}
	cout << endl;

begin()

C++中string类的常用函数
作用:返回一个指向这个字符串首字符的迭代器

end()

C++中string类的常用函数
作用:返回一个指向这个字符串末尾后的字符的迭代器

begin() + end() 遍历字符串

	string s5 = "abcdefg";
	string::iterator it;
	for (it = s5.begin(); it != s5.end(); it++)
	{
		cout << *it << " ";
	}//输出 a b c d e f g
	cout << endl;

rbegin()

C++中string类的常用函数
作用:返回字符串最后一个字符的位置

rend()

C++中string类的常用函数
作用:返回字符串首字符的前一个位置

rbegin() + rend()反向遍历字符串

string s6 = "abcdefg";
	string::reverse_iterator rit;//反向迭代器
	for (rit = s6.rbegin(); rit != s6.rend(); rit++)
	{
		cout << *rit << " ";
	}//输出g f e d c b a
	cout << endl;

C++11范围for

	string s7 = "abcdefg";
	for (const auto& e : s7)
	{
		cout << e << " ";
	}

string类对象修改操作

C++中string类的常用函数

operator+=

作用:在字符串后面追加字符

	string s1 = "abcdefg";
	s1 += "fff";
	cout << s1 << endl; //输出abcdefgfff
	string s2;
	s2 = s1 + "hhh";
	cout << s2 << endl;//输出abcdefgfffhhh
	string s3 = s1 + s2;
	cout << s3 <<end;//输出abcdefgfffabcdefgfffhhh

字符串操作

C++中string类的常用函数

c_str()

C++中string类的常用函数

作用:把const string类型转换成const char类型,并返回const char*的指针

	const char* ptr;
	string s7 = "abcdefg";
	ptr = s7.c_str();
	cout << ptr << endl;//输出abcdefg
	s7 = "aaaaaaaa";//改变原来的字符串
	cout << ptr << endl;//输出aaaaaaaa

由此可见返回的指针和字符串指针,这两个指针是指向的同一个地址

find

C++中string类的常用函数
作用:从pos位置开始向末尾位置查找字符串或者字符,并返回对应的下标,如果没找到则返回npos.
参数s或c表示要查找的字符串或者字符
pos指在字符串中开始查找的起始位置
n表示要查找的字符串长度

	string s1 = "abcdeeeeefg";
	cout << s1.find('a');//输出0
	cout << s1.find("cde");//输出2
	cout << s1.find("cde", 3);
	//输出npos,从下标为3的位置开始找,没找到返回npos = 4294967295

rfind()

C++中string类的常用函数
作用:从pos位置开始向0位置查找字符串或者字符,并返回对应的下标,如果没找到则返回npos

	string s2 = "abcdeeeeefg";
	cout << s2.rfind('e') << endl;//输出8----rfind()是倒着查找的
	cout << s2.rfind("cde") << endl;//输出2
	cout << s2.rfind('m') << endl;//输出npos = 4294967295

substr()

C++中string类的常用函数
作用:在字符串中从pos位置开始截取长度为len的子串

	string s3 = "abcdefgh";
	string s4 = s3.substr(2, 5);
	cout << s4 << endl;//输出cdefg
	string s5 = s3.substr(2);
	cout << s5 << endl;//输出cdefgh

常量成员

npos

C++中string类的常用函数
npos是静态成员常量,值为static const size_t npos = -1;
-1对应的无符号整数为4294967295

非成员函数重载

C++中string类的常用函数

getline()

C++中string类的常用函数
作用:获取一行字符串,包括空格

	string s6;
	getline(cin, s6);//输入a b  c gg----g后面也输入了两个空格
	cout << s6 << endl;//输出a b  c gg

C++中string类的常用函数文章来源地址https://www.toymoban.com/news/detail-481147.html

到了这里,关于C++中string类的常用函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • String类的学习笔记(下):字符串拼接以及StringBuilder和StringBuffer的学习

    本文介绍了String类对字符串进行拼接的方法 和拼接字符串的效率分析 以及能对字符串内容进行修改的StringBuilder和StringBuffer类其常用方法和区别 , 最后介绍了两个字符串经典面试题 1.String常用方法学习-2.String的不可变和字符串常量池-StringBuilder和StringBuffer String类是Java中用来描

    2024年02月05日
    浏览(56)
  • 【C++】STL——string的模拟实现、常用构造函数、迭代器、运算符重载、扩容函数、增删查改

    string使用文章   这里我们 实现常用的第四个string(const char* s)和析构函数     拷贝构造函数实现:   在堆上使用new为当前对象的成员变量_str分配内存空间,大小为s._capacity + 1字节,即字符串的容量加上一个结束符\\0的空间。   我们使用深拷贝而不是浅拷贝,

    2024年02月15日
    浏览(55)
  • string类的函数讲解

    首先关于string类的了解,我先给出官方的string类的讲解,以便于大家的学习:链接: http://www.cplusplus.com/reference/string/string/?kw=string 这个网站是C++官方网站,里面对于各个和库函数的讲解都是很官方的,大家有需要的时候可以参考 我们对string类进行一个简单的总结: st

    2024年02月03日
    浏览(36)
  • Java中String类的常用方法

    一、String 类的概念 java.lang.String 类用于描述字符串,Java程序中所有的字符串面值都可以用该类的对象加以描述。 该类由 final 修饰,表示该类 不能被继承 。 从 jdk1.9开始该类的底层不使用 char[] 来存储数据,而是改成 byte[] 加上编码标记,从而节约了一些空间。 该类描

    2023年04月08日
    浏览(79)
  • String类的学习笔记(上):介绍String类及其常用方法的使用

    本文介绍了Java中用来描述操作字符串的String类,和其一些常用的基本操作方法,字符串的创建输出,字符串对象的比较,字符串查找,字符串的转化,字符串的替换,字符串拆分,字符串截取,和大小写转换,去除左右空格,子字符串包含,学会使用这些方法,能更方便的使用操作字符串~ 前言

    2023年04月23日
    浏览(58)
  • 【c++】string类的使用

    目录 一、标准库中的string类 1、简单介绍string类 2、string类的常用接口注意事项 2.1、string类对象的常用构造 2.2、string类对象的容量操作 2.3、string类对象的访问及遍历操作 2.4、string类对象的修改操作 二、string类的模拟实现         (1)string是表示字符串的字符串类;    

    2024年02月01日
    浏览(70)
  • 【C++】string类的基础操作

    💗个人主页💗 ⭐个人专栏——C++学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读 1. 基本概述 2. string类对象的常见构造 3. string类对象的容量操作 4. string类对象的访问及遍历操作 5. 迭代器 6. string类对象的修改操作 6.1 基本修改操作 6.2 c_str()函数 6.3 find + npos、rfind和

    2024年03月11日
    浏览(45)
  • C++ String类的基本使用

            放弃时间的人,时间也会放弃他。——莎士比亚 ; 本篇章是关于string类内一些函数的介绍以及使用方法,都是我们编程必须掌握的基础! ​ 全文共7000字左右. 话不多说安全带系好,发车啦 (建议电脑观看) 。 附:红色,部分为重点部分;蓝颜色为需要记忆的

    2024年02月09日
    浏览(35)
  • 【C++】String类的模拟实现。

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:C++初阶 🎉代码仓库:小智的代码仓库 string类中需要三个成员变量分别记录元素个数、容量和内容。还需要一个 size_t 类型npos-1表示整型的最大值。 这段代码是 string 类的构造函数。构造函数是在

    2024年02月13日
    浏览(42)
  • 【C++】string类的模拟实现

    前言:在上一篇中我们讲到了string类的使用方法,今天我们将进一步的去学习string类,去底层看看它顺带模拟实现部分的内容。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量C++学习 👈 💯代码仓库:卫卫周大胖的学习日记💫 💪关注博主和博主一起学习!一起努

    2024年03月21日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包