C++ Primer Plus (第6版)学习笔记 (c风格字符串01)

字符串是存储在内存的连续字节中的一系列字符。c++有两种处理字符串的风格。下面将会介绍c风格的字符串。存储在连续字节中的一系列字符串,相当于存储在char类型的数组中,每个字符都位于自己的元素中。
我们都知道c语言的字符串以:空字符(null)结尾,空字符被写作\0,其ASCII码为0。这里\0并不是数字0,0的ASCII值是48完全是两个不同的元素。所以我们在写字符串时不用担心字符串里面有数字0而提前结束。但是如果字符串中有/0呢?或者是如果想在字符串里面添加双引号(")呢?

char a[]="str\0ing";
cout <

从代码运行结果看,只需要在\0前面加一个\就行啦,那在字符串里面添加双引号"呢?

char a[] = "str\"ing";
cout << a;   //结果为:str"ing

显然在字符串里面加双引号跟在字符串里面加\0是一样的结果
这里我想输出一个\\,我还用上面的方法在\\前面加一个\看看结果是什么

char a[] = "stri\\\g";
cout << a;   //结果是:stri\g
char b[] = "stri\78";
cout << b;   //结果是:stri8g

显然结果并不是:stri\\g ,再看最下面的两行代码输出b的结果是stri8g。说明\(转义操作符)只对单个元素有用。
在使用数组表示字符串数时

char name6[] = { 'a','b','c' };
cout << name6;//结果:abc烫烫烫烫烫烫烫烫烫烫烫烫胎?  --显然这是错误的
char name7[] = {'a','b','c','\0}; //结果是abc

很显然上面数组name7才是字符串,而对于name6,cout只会一直在内存中寻找\0才能结束。
虽然上面的name7可以用于表示字符串,但是它写着太麻烦啦,一般表示字符串都会用双引号表示(char c[]="abc")结尾自带\0。
当数组这样写是时(char c[4]="abc";)一定要保证数组[]里的参数要至少比字符串里的元素个数多一个,在定义数组时,数组长度大点最好,只不过是浪费点内存,要是程序这而导致错误,则得不偿失。
这是我第一次写博客,简单的记录我的学习,如果有思想上的错误与不足或者程序上的错误与不足,欢迎各位大佬们的指正、与建议。

你可能感兴趣的:(笔记,学习,c++,c语言)