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;
}