❥关于C++之C风格字符串

Posted itzyjr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了❥关于C++之C风格字符串相关的知识,希望对你有一定的参考价值。

char cat[4] = 'c', 'a', 't', '\\0';
cout << cat;// 打印:cat
char dog[3] = ['d', 'o', 'g';
cout << dog;// 打印:dog€??

由打印结果可知:c-string末尾是以’\\0’结尾的,否则不是c-string!

#include<cstring>// 使用strlen函数
...
char fish[] = "Bubbles";// 让编译器计算长度。末尾是有\\0的!
cout << strlen(fish);// 打印:6(strlen以\\0为结束标志,不计入)

<cstring>库对应C的string.h,strlen函数原型为:size_t strlen(const char* str);对于数组,数组名即为数组首地址指针,故参数是指针类型OK。

char ch[3];
if (ch[0] == '\\0' && ch[1] == '\\0' && ch[2] == '\\0')
	cout << "Initial All NULL";

打印:Initial All NULL,说明字符数组初始化时,全部为’\\0’。

通过cin键盘输入,将字符串读入到char数组时,将自动加上结尾的空字符。

关于字符串末尾的’\\0’,有一种情况要注意:拼接字符串常量。

cout << "I'd give my right ar"
		"m to be a great violinist.\\n";

在以上情况下,第一个字符串末尾的’\\0’将被第二个字符串的第一个字符取代,从而完成字符串的拼接。

以上是关于❥关于C++之C风格字符串的主要内容,如果未能解决你的问题,请参考以下文章

C++笔记--关于string, char*, char[]中的‘

C++系列4:数据类型和变量

❥关于C++之文件结尾及处理

C++ 字符串

谷歌风格C++命名规则

谷歌风格C++命名规则