C++ 系统String类详解

 更新时间:2021年11月01日 11:15:30   作者:ALL IN C  
这篇文章主要介绍了C++的系统String类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、C++ 系统String类

除了使用字符数组来处理字符串以外,c++引入了字符串类型。可以定义字符串变量。

1.定义及初始化

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
	string str;
	str = "china";
	string str2 = " is great ";
	string str3 = str2;
	cout<<str<<str2<<endl<<str3<<endl;
	return 0;
}

输出结果

2.类型大小

cout<<"sizeof(string) = "<<sizeof(string)<<endl;
cout<<"sizeof(str) = "<<sizeof(str)<<endl;

输出结果

3.常用运算

1.赋值

string str3 = str

2.加法

string combine = str + str2;
cout<<combine<<endl;

3.关系

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
	string s1 = "abcdeg";
	string s2 = "12345";
	if(s1>s2)
		cout<<"s1>s2"<<endl;
	else
		cout<<"s1<s2"<<endl;
	string s3 = s1+s2;
	cout<<s3<<endl;
	return 0;
}

输出结果

4.常见的成员函数

1.下标操作

char & operator[](int n) ;

2.求串大小

int size();

3.返回c串(c语言中的字符串也叫c串)

char *c_str();

4.查找

int find(char c, int pos = 0);
int find(char * s, int pos = 0);
//返回下标值,没有找到返回-1,默认从 0 下标开

5.删除

string &erase(int idx=0,int n = npos);
//作用是删除从 idx 开始,往后数 n 位的字符串

6.交换swap

void swap(stirng &s2);

5.string类型数组

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
	string sArray[10] = {
	"0",
	"1",
	"22",
	"333",
	"4444",
	"55555",
	"666666",
	"7777777",
	"88888888",
	"999999999",
	};
	for(int i=0; i<10; i++)
	{
		cout<<sArray[i]<<endl;
	}
	return 0;
}

string 数组是高效的,如果用二维数组来存入字符串数组的话,则容易浪费空间,此时列数是由最长的字符串决定。如果用二级指针申请堆空间,依据大小申请相应的空间,虽然解决了内存浪费的问题,但是操作麻烦。用 string 数组存储,字符串数组的话,效率即高又灵活。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • C++中Pimpl的惯用法详解

    C++中Pimpl的惯用法详解

    Pimpl(Pointer to Implementation)是一种常见的 C++ 设计模式,用于隐藏类的实现细节,本文将通过一个较为复杂的例子,展示如何使用智能指针来实现 Pimpl 惯用法,需要的可以参考下
    2023-09-09
  • C++使用WideCharToMultiByte函数生成UTF-8编码文件的方法

    C++使用WideCharToMultiByte函数生成UTF-8编码文件的方法

    用来映射Unicode字符串的WideCharToMultiByte函数经常被用来进行UTF-8编码的转换,以下我们将看到C++使用WideCharToMultiByte函数生成UTF-8编码文件的方法,首先先来对WideCharToMultiByte作一个详细的了解:
    2016-06-06
  • C++实现有向图邻接表的构建

    C++实现有向图邻接表的构建

    这篇文章主要为大家详细介绍了C++实现有向图邻接表的构建,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C++获取GPU显卡信息的示例代码

    C++获取GPU显卡信息的示例代码

    这篇文章主要为大家详细介绍了如何使用C++获取GPU显卡信息,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-02-02
  • vc中使用SendMessage自定义消息函数

    vc中使用SendMessage自定义消息函数

    这篇文章主要介绍了vc中使用SendMessage自定义消息函数的相关资料,需要的朋友可以参考下
    2015-06-06
  • C++ Boost PointerContainer智能指针详解

    C++ Boost PointerContainer智能指针详解

    智能指针是一种像指针的C++对象,但它能够在对象不使用的时候自己销毁掉。虽然STL提供了auto_ptr,但是由于不能同容器一起使用(不支持拷贝和赋值操作),因此很少有人使用。它是Boost各组件中,应用最为广泛的一个
    2022-11-11
  • String底层函数的实现方式详解

    String底层函数的实现方式详解

    这篇文章主要介绍了String底层函数的实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • c++ 有趣的动态转换

    c++ 有趣的动态转换

    这篇文章主要介绍了c++ 动态转换的相关资料,帮助大家更好的理解和使用c++编程,感兴趣的朋友可以了解下
    2020-09-09
  • C语言实现动态爱心代码

    C语言实现动态爱心代码

    这篇文章主要为大家详细介绍了如何通过C语言实现动态爱心的效果,文中的示例代码讲解详细,具有一定的学习价值,还不快跟随小编一起get李峋同款爱心代码
    2022-11-11
  • opencv3/C++ 直方图反向投影实例

    opencv3/C++ 直方图反向投影实例

    今天小编就为大家分享一篇opencv3/C++ 直方图反向投影实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论