「这是我参与2022首次更文挑战的第18天,活动详情查看:2022首次更文挑战」
前言
前篇文章介绍了一些编程语言基本通用的运算符,今天看下C++中有点不一样的字符串类型。
char
在C++中最简单的字符串类型就是char ,在C++中char类型的变量只能保存一个字符,想要保存多个字符只能使用字符串数组使用:char a[] = "abc"
,其实在C++中char类型是另一种整型,计算机中只能存储0和1,单个字节长度为8位,8位的0和1能表示的最大的数就是128,要一个字节能够表示计算机系统中所有基本符号,在很多系统支持的字符都不超过128个。这128个字符就是著名的ASCII编码。
我们来打印一下单个字符的ASCII编码:
#include <iostream>
using namespace std;
int main()
{
char a;
cout << "请输入字符: ";
cin >> a;
int b = a;
cout << "您的输入是: " << b << endl;
}
复制代码
结论就是a这个字符的ASCII编码就是97。
string
在C++中string
是一个std标准库的内容,在之前的例子中我很少会用到char,因为char是C语言风格的数据类型非常原始,string是C++的新的数据类型,它简化了很多原始char类型数据的操作,string应该是一个类,而不是真实的数据类型。例如它有很多初始化方法用来初始化一个字符串:
#include <iostream>
using namespace std;
int main()
{
string a1="a";
string a2("abc");
string a3 (4, 'a'); //字符串复制
string a4("123", 1, 10); //字符串截取
cout << "a1输出: " << a1 << endl;
cout << "a2输出: " << a2 << endl;
cout << "a3输出: " << a3 << endl;
cout << "a4输出: " << a4 << endl;
}
复制代码
使用string 类的时候必须引入std标准库
string 字符串连接
#include <iostream>
using namespace std;
int main()
{
string c="c";
string d = "d";
d.append(c);
cout << "d输出: " << d << endl;
}
复制代码
字符串比较
#include <iostream>
using namespace std;
int main()
{
string c="c";
string d = "d";
int e = c.compare(d);
cout << "e输出: " << e << endl;
}
复制代码
结果用数字表示,结果如下,对比的是字符串ASCII编码
- 小于 0 表示当前的字符串小;
- 等于 0 表示两个字符串相等;
- 大于 0 表示另一个字符串小;
总结
今天学习了一下较为底层的char类型和一点点底层知识。还有C++标准库中的string类,介绍了两个常用的方法,以后再遇到字符串处理的地方在补充~,有错误指出还望大家指出。