C++ 系统String类详解

目录
  • 一、C++ 系统String类
    • 1.定义及初始化
    • 2.类型大小
    • 3.常用运算
      • 1.赋值
      • 2.加法
      • 3.关系
    • 4.常见的成员函数
      • 1.下标操作
      • 2.求串大小
      • 3.返回c串(c语言中的字符串也叫c串)
      • 4.查找
      • 5.删除
      • 6.交换swap
    • 5.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 数组存储,字符串数组的话,效率即高又灵活。

总结

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

(0)

相关推荐

  • 详解C++ string常用截取字符串方法

    string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos); 其中strSub是需要寻找的子字符串,npos为查找起始位置.找到返回子字符串首次出现的位置,否则返回-1: 注: (1)find_last_of的npos为从末尾开始寻找的位置. (2)下文中用到的strsub(npos,size)函数,其中npos为开始位置,size为截取大小 例1:直接查

  • 详解C++中string的用法和例子

    string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作.同时C++的算法库对string也有着很好的支持,而且string还和c语言的字符串之间有着良好的接口.虽然也有一些弊端,但是瑕不掩瑜. 其中使用的代码多数都是来自cpp官网,因为例子非常全. 声明和初始化方法: 想使用string首先要在头文件当中加入< string > 声明方式也很简单 声明: string s;//声明一个string 对象 string s

  • 详解C++ string字符串类

    C++字符串string类 在C语言里,字符串是用字符数组来表示的,而对于应用层而言,会经常用到字符串,而继续使用字符数组,就使得效率非常低. 所以在C++标准库里,通过类string从新自定义了字符串. 头文件: #include <string> string直接支持字符串连接 string直接支持字符串的大小比较 string直接支持子串查找和提取 string直接支持字符串的插入和替换 string同时具备字符串数组的灵活性,可以通过[ ]重载操作符来访问每个字符. 字符串数组和str

  • C++string容器基本概念详解

    string基本概念 本质: string是C++风格的字符串,而string本质上是一个类 string和char*区别: char*是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器. 特点: string类内部封装了很多成员方法 例如:查找find,拷贝copy,删除delete,替换replace,插入insert string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责. string构造函数 #includ

  • C字符串与C++中string的区别详解

    在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别:  C字符串 string对象(C++) 所需的头文件名称  <string>或<string.h> <string>或<string.h> 需要头文件 原因 为了使用字符串函数 为了使用string类 声明 方式 char name[20]; string name; 初始化方式 char name[20]="

  • C++ 系统String类详解

    目录 一.C++ 系统String类 1.定义及初始化 2.类型大小 3.常用运算 1.赋值 2.加法 3.关系 4.常见的成员函数 1.下标操作 2.求串大小 3.返回c串(c语言中的字符串也叫c串) 4.查找 5.删除 6.交换swap 5.string类型数组 总结 一.C++ 系统String类 除了使用字符数组来处理字符串以外,c++引入了字符串类型.可以定义字符串变量. 1.定义及初始化 #include <iostream> #include <string.h> u

  • Java String类详解_动力节点Java学院整理

    引题 在Java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合Java内存分配深度分析关于String的许多令人迷惑的问题.下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文. 1.Java内存具体指哪块内存?这块内存区域为什么要进行划分?是如何划分的?划分之后每块区域的作用是什么?如何设置各个区域的大小? 2.String类型在执行连接操作时,效率为什么会比StringBuffer或者StringBuild

  • Android系统工具类详解

    本文实例为大家分享了Android系统工具类的具体代码,供大家参考,具体内容如下 系统工具类 public class systemUtil { //隐藏ipad底部虚拟按键栏 @RequiresApi(api = Build.VERSION_CODES.KITKAT) public static void closeBottomBar(Activity activity){ Window _window = activity.getWindow(); WindowManager.LayoutP

  • java新手入门——String类详解

    目录 一.创建字符串 1. 直接赋值(常用) 2. new String 3. 字符数组转String 4.String类中两种对象实例化的区别 二.字符串比较相等 1.直接比较字符串 2.字符串在内存中的存储 3.字符串常量池 4.字符串比较equals 5.理解字符串的不可变 6.手动入池 intern() 1.字符转字符串 2.字符串转字符 3.字节与字符串 4.编码方式 5.小结 四.字符串常见操作 1.字符串比较 2.字符串查找 3.字符串替换 4.字符串拆分 5.字符串截取 五.St

  • Android系统对话框使用详解(最详细)

    在实际应用开发中,用到系统对话框中的情况几乎是没有的.按开发流程来说,UI工程师都会给出每一个弹窗的样式,故而在实际开发中都是自定义弹窗的. 即使用到的地方不多,但是我们也是需要了解并且能熟练的运用它,下面为大家奉上各种系统对话框的实现. 目录 一.系统对话框的几种类型与实现 在项目的实际开发中,用到的系统对话框几乎是没有的.原因大概包含以下几点: 样式过于单一,不能满足大部分实际项目中的需求. 对话框的样式会根据手机系统版本的不同而变化.不能达到统一的样式. 能实现的功能过于简单. 在这里先附

  • JS实现简单的选择题测评系统代码思路详解(demo)

    包含内容:JS封装表单,JS校验表单 说是测评系统,感觉只能算是一个小小的Demo,很水,,没有数据库库,,仅使用JS做简单的选择题测评系统 -------------------------------------------------------------------------------- 一.设计思路 表单封装: [1]由于采用JS封装提交所以,不需要form标签 [2]放置多个input标签,作为输入项 [3]编写JS获取输入项,并通过get方式提交到另一个页面 校验表单(显示结

  • Java基础之Object类详解

    object类的介绍 object是所有类的直接父类或者是间接父类,为什么这么说呢? 可以查询java8的API帮助文档: 可见在这样的一个类树中,所有的类的根还是Object类 在IDEA中新建一个类,系统会默认继承Object类 public class Pet extends Object{ } 那么Dog继承了Pet类的属性和行为方法,还会继承Object类的属性和行为方法了吗?这一点是肯定的,Pet类作为Object类的子类,Dog类作为Pet类的子类,所以说Object是Dog类的间

  • Java 语言中Object 类和System 类详解

    Object是java所有类的基类,是整个类继承结构的顶端,也是最抽象的一个类.大家天天都在使用toString().equals().hashCode().waite().notify().getClass()等方法,或许都没有意识到是Object的方法,也没有去看Object还有哪些方法以及思考为什么这些方法要放到Object中. 一.Java Object类简介-所有类的超类 Object 是 Java 类库中的一个特殊类,也是所有类的父类.也就是说,J ava 允许把任何类型的对象赋给

  • Kotlin实现Android系统悬浮窗详解

    目录 Android 弹窗浅谈 系统悬浮窗具体实现 权限申请 代码设计 具体实现 FloatWindowService 类 FloatWindowManager 类 FloatWindowManager 类代码 FloatLayout 类及其 Layout HomeKeyObserverReceiver 类 FloatWindowUtils 类 总结 Android 弹窗浅谈 我们知道 Android 弹窗中,有一类弹窗会在应用之外也显示,这是因为他被申明成了系统弹窗,除此之外还有2类弹窗分别是

  • Node.js实战之Buffer和Stream模块系统深入剖析详解

    目录 正文 写入缓冲区 从流中读取数据 管道流 链式流 模块系统 正文 JavaScript语言本身只有字符串数据类型,没有二进制数据类型. 但是,在处理TCP流或文件流时必须使用二进制数据. 因此,在node JS中,定义了一个缓冲区类来创建用于存储二进制数据的缓冲区. const buf = Buffer.from('runoob', 'ascii'); 在node JS中,缓冲区类是与node内核一起发布的核心库. 缓冲库是node JS带来的一种存储原始数据的方法,它允许节点JS. co

随机推荐