C++字符串字面量

本文详细探讨了C++中字符串字面量的内存结构、使用指针的原因,以及UTF-8、WideString、UTF-16和UTF-32等不同类型的字符串。还介绍了计算字符串长度的strlen函数和两种字符串附加方法。
摘要由CSDN通过智能技术生成

定义

字符串字面量:是双引号之间的一串字符

1、字符串字面量的内存以及它如何工作的?
字符串字面量永远保存在内存的只读区域

 2、为什莫要字符串字面量定义为指针?
因为数组本身就是指针

字符串的几种类型:

UTF-8,WideString,UTF-16,UTF-32

代码案例

四种类型:

const char* name1 = u8"cherno"; //未定义是不被允许的,原因:取了一个指向字符串字面量的内存位置的指针,而字符串字面量是存储在内存的只读部分的
	//"cherno"; //字符串字面量,在这种情况下,字符串的最后有一个额外的字符--空终止符(\0或者实际数字0)
const wchar_t* name2 = L"cherno"; //加上L表示下面的字符串字面值由宽字符组成,两字节的字符
const char16_t* name3 = u"cherno";// 两个字节的16比特的字符
const char32_t* name4 = U"cherno";// 四个字节的32比特的字符

 字符串长度

const char name[8] = "che\0rno";  // \0转义字符作为一个字符,存在隐含的\0
cout << strlen(name) << endl; //strlen计算字符串长度的函数,输出结果为3,因为它只计算直到反斜杠"\0"之前的字符数,一旦到0,它认为结束了

strlen计算字符串长度的函数,输出结果为3,因为它只计算直到反斜杠"\0"之前的字符数,一旦到0,它认为结束了

字符串附加的方法:

附加字符串方法一
using namespace std::string_literals;
	string name0 = u8"cherno"s + "hello";
	wstring name0 = L"cherno"s + L"hello";
	u16string name0 = u"cherno"s + u"hello";  
	
附加字符串字面量方法二
const char* example = R"(Line1
Line2
Line3
Line4)";
const char* ex = "Line1\n"
	"Line2\n"
	"Line3\n";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值