c++String类详细介绍(补充)

本文详细介绍了C++中String类的字符串比较方法,包括使用compare函数的三种不同方式,并探讨了将String对象转换为其他类型,如int,使用stoi函数的用法。此外,还提到了将其他类型转换为String的to_string函数。
摘要由CSDN通过智能技术生成

c++String使用的补充

write in front

作者:@ 不进大厂不改名
专栏:@ c++
作者简介:大一学生 希望能向其他大佬和同学学习!
本篇博客简介:本文主要针对上次的内容进行补充

本章目标

1.String类中字符串的比较
2.String类对象的类型转换

1.字符串的比较

比骄傲方式一

函数使用compare
使用规则:
1.比较字符
比较字符实际上是比较字符的ASCII码值的大小
前面字符大于后面字符返回大于0的值(一般默认是1)
前面字符小于后面字符返回小于0的值(一般默认是-1)
前面字符等于后面字符返回0(一般是0)
2.比较字符串
实际上就是按照字符的顺序一个一个进行比较
那如果一个结束了,另一个还没有结束怎么办呢?
我们知道字符串结束的标志是‘\0’,事实上它的ASCII码值是0
那么还没有结束的那个字符串肯定是大于结束的那个字符串的
实例如下:

#include <iostream>
using namespace std;
int main()
{
	string s1("hello world");
	string s2 = "hello hyh";
	string s3(s1);
	cout << s1.compare(s2) << endl;
	cout << s1.compare(s3) << endl;


	return 0;
}

在这里插入图片描述
比较方式二

我们可以在前面指定开始比较的位置和需要比较的个数(这里说的都是比较字符串的,也就是最初的字符串)

#include <iostream>
using namespace std;
int main()
{
	string s1("hello world");
	string s2 = "hello hyh";
	string s3(s1);
	cout << s1.compare(2,3,s2) << endl;
	//"ell"和整个s2进行比较
	cout << s1.compare(2,3,s3) << endl;
	//"ell"和整个s3进行比较

	return 0;
}

在这里插入图片描述
比较方式3:

我们指定两个字符串中需要比较的内容进行比较

#include <iostream>
using namespace std;
int main()
{
	string s1("hello world");
	string s2("hello hyh");
	string s3(s1);
	cout << s1.compare(2, 3, s2, 1, 3) << endl;
	cout << s1.compare(2, 3, s3, 3, 3) << endl;


	return 0;
}

在这里插入图片描述

2.String类对象转化成其他类型(int为例)

函数名称stoi

我们直接上代码然后再进行解释吧

#include <iostream>
using namespace std;
#include<string>
int main()
{
	string s1 = "1";//十进制 7
	int a =stoi(s1,0,10);//0是指空指针,最后的10可以不写
	//int a = stoi(s1);
	cout << s1<< endl;
	return 0;
}

在这里插入图片描述

1.这个函数使用时要使用<string.h>的头文件
2.这个函数一共有三个参数
第一个参数应该传进去一个字符串
第二个参数应该传进去一个pos指针,指向我们开始要转化成int类型的位置(默认是0也就是全部转化)
第三个参数是进制,就是传进去是几就是几进制。
一般默认不写就是转换成10进制
所以一般可以直接简写成下面注释的那一种。
还有许多相似的函数比如说:
stos、stold、stolld我们只要通过上面的例子记住这一类的用法就行
后面我们要用到其他函数时直接套用就行了。

其他类型转换成String类型

用到to_string函数

#include <iostream>
using namespace std;
#include<string>
int main()
{
	string s1 = to_string(123456);
	string s2 = to_string(123.4567);
	cout << s1 << endl;
	cout << s2 << endl;
	
	
	return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值