c++系列之string类的常用接口函数

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

c++系列之string类的常用接口函数

💗 💗 博客:小怡同学
💗 💗 个人简介:编程小萌新
💗 💗 如果博客对大家有用的话,请点赞关注再收藏 🌞

string

string时表示字符串的字符类
//使用 string类包含#include 头文件 以及 using namespace std

string类的常见构造

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string s;//string()
	string s1("hello world");//string(const char* s)
	string s2(s1);//string(const string& s)
	cout << s << endl;
	cout << s1 << endl;
	cout << s2 << endl;
	return 0;
}

string

string容量相关接口 (size(),capacity(),clear(),empty)

1.size()是元素个数
//. size()与length()方法底层实现原理完全相同,引入size()的原因是为了与其他容器的接口保持一致,一般情况下基本都是用size()。
2.capacity()是容积
3.clear()将字符串清空,但不改变底层空间大小 //clear()只是将string中有效字符清空,不改变底层空间大小。
4.empty()检测字符串是否为空是返回true ,否则返回false

resize()接口函数

resize(size_t n) 与 resize(size_t n, char
c)都是将字符串中有效字符个数改变到n个,不同的是当字符个数增多时:resize(n)用0来填充多出的元素空间,resize(size_t n, char
c)用字符c来填充多出的元素空间。注意:resize在改变元素个数时,如果是将元素个数增多,可能会改变底层容量的大小,如果是将元素个数减少,底层空间总大小不变。

int main()
{
	
	string s1("hello world");
	
	cout << s1.size() <<endl;
	cout << s1.capacity() << endl;
	s1.resize(34,'y');// 将s1中有效字符个数增加到34个,多出位置用'y'进行填充
	s1.resize(13);
	cout << s1.size() << endl;
	cout << s1.capacity() << endl;
	cout << s1 << endl;

	s1.resize(3, 'y');
	cout << s1.size() << endl;
	cout << s1.capacity() << endl;
	cout << s1 << endl;
	return 0;
}

c++系列之string类的常用接口函数

reserve()

//reserve(size_t res_arg=0)
为string预留空间,不改变有效元素个数,当reserve的参数小于string的底层空间总大小时,reserver不会改变容量大小。

c++系列之string类的常用接口函数
c++系列之string类的常用接口函数

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

//operator[]
//迭代器->begin(),end() / rbegin() ,rend()
//for

1.operator[]
c++系列之string类的常用接口函数
2.迭代器

int main()
{
	
	string s1("hello world");
	
	string::iterator vit = s1.begin();
	while (vit != s1.end())
	{
		cout << *vit ;
		vit++;
	}
	cout << "  " << endl;

	string::reverse_iterator it = s1.rbegin();
	while (it != s1.rend())
	{
		cout << *it;
		it++;
	}
	return 0;
}

c++系列之string类的常用接口函数
3.范围for

int main()
{
	
	string s1("hello world");
	
	for (auto tmp: s1)//tmp只是原数组拷贝 不改变原数就改成引用会改变
	{
		cout << ++tmp;
	}
	cout << " " << endl;
	for (auto& tmp : s1)
	{
		cout << ++tmp ;
	}
	return 0;
}

c++系列之string类的常用接口函数
c++系列之string类的常用接口函数

string类对象的修改和操作

插入(拼接)方式

push_back() //加字符
append()//加字符串
operator()//加字符或字符串都行

int main()
{
	
	string s1("hello world");
	s1.push_back('a');
	s1.append("asddfs");
	s1 += 'a';
	s1 += "sfasd";
	cout << s1;
	return 0;
}

正向和反向查找:find() + rfind()

int main()
{
	
	string s1("hello.world");
	int pos1 = s1.find('.');
	string s ("string.cpp");
	int pos = s.rfind('.');
	string s2("aahello.world");
	int pos = s2.find(s1);//查找字符串
	//返回下标
	
	string s1("hello.worl.d");
	int pos = s1.find('.',6 );
	//第一个参数是要找的字符、字符串,第二个参数是从下标n开始查找
	cout << pos;
	return 0;


	// npos是string里面的一个静态成员变量
	// static const size_t npos = -1;
	//如果未找到匹配项,则该函数返回string::npos。
}

截取子串:substr()

string substr (size_t pos = 0, size_t len = npos) const

int main()
{
	
	string s1("hello.world");
	int pos1 = s1.find('.');
	string s2("aahello.world");
	string s3( s1.substr(1, 5));
	cout << s3 << endl;
	//从下标pos ,截取n个
	return 0;
	//返回字符串对象

}

c++系列之string类的常用接口函数

getline()

//非字符类的接口函数

istream& getline (istream& is, string& str)

int main()
{
	
	string s1;
	getline(cin,s1);
	cout << s1 << endl;
	return 0;
}

reverse用法

//非string接口函数,常用于字符串反转 void reverse (BidirectionalIterator first,BidirectionalIterator last); 参数是迭代器 (左闭右开)

#include <iostream>
#include <string>
using namespace std;
    int main()
    {
        string s ("race a car");
        reverse(s.begin(), s.end());
        cout << s << endl;
        return 0;
    }

//begin()是字符串第一个字符
//end()是字符串最后一个字符的下一位
//rbegin()是最后一个元素
//rend()是第一个元素

c++系列之string类的常用接口函数文章来源地址https://www.toymoban.com/news/detail-495887.html

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

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

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

相关文章

  • 【c++】string类常见接口函数

    🔥个人主页 : Quitecoder 🔥 专栏 : c++笔记仓 朋友们大家好啊, 本节我们来到STL内容的第一部分: string 类接口函数的介绍 给大家分享一个c++文档库: https://legacy.cplusplus.com/ 字符串类是代表字符序列的对象 标准字符串类为这类对象提供了支持,其接口类似于标准字节容器的

    2024年04月16日
    浏览(32)
  • C++中String的语法及常用接口的底层实现详解

      在C语言中,我们知道处理 字符串所用的类型是 char []或者char* 。字符串是以‘\\0’结尾的。在C++中,string 是一个标准库类(class), 用于处理字符串 。它提供了一种更高级、更便捷的字符串操作方式,string 类提供了一系列成员函数和重载运算符,以便于对字符串进行操作

    2024年02月10日
    浏览(39)
  • 【C++从入门到放弃】string全方面分析(常用接口、模拟实现)

    🧑‍💻作者: @情话0.0 📝专栏:《C++从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 在学习C++的过程中,必定有一个非常重要的工具就是STL(标准模板库):C++标准库的重要组成部分,它不仅是一个可复

    2024年02月02日
    浏览(49)
  • 【C++ STL】vector类最全详解(什么是vector?vector类的常用接口有哪些?)

    目录 一、前言 二、什么是vector ? 💦 vector的基本概念 💦vector的作用是什么 💦总结 三、 vector的(一维)定义 四、vector(一维)常用接口的使用  💦vector的常见构造(初始化)  💦vector的遍历及迭代器的操作 ① operator[ ]  ② at ( )  ③迭代器  ③ 范围for   💦vector的常见容量操

    2024年02月03日
    浏览(42)
  • 【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日
    浏览(78)
  • String类的学习笔记(上):介绍String类及其常用方法的使用

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

    2023年04月23日
    浏览(58)
  • Java中的String类的常用方法(对于字符串的常用操作)

    目录 一、获取指定索引的字符 二、 获取指定字符或者字符串的索引位置 三、判断字符串是否以指定内容开头或结尾 四、替换指定的字符或者是字符串 五、获取字符串的子串 六、将字符串转换为字符数组  七、比较字符串的内容是否相等  八、连接字符串 九、比较两个字

    2024年02月20日
    浏览(73)
  • 【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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包