博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 字符串
阅读量:6697 次
发布时间:2019-06-25

本文共 984 字,大约阅读时间需要 3 分钟。

hot3.png

1.    C-风格字符串

    说到字符串,那就不得先说说C-风格的字符串,它的头文件名是cstring。在C中存储字符串是通过char数组来实现的。下面看一段代码:

#include 
char c1[5] = {'Z','Z','e','r','o'};    //这不是字符串char c2[5] = {'Z','e','r','o','\0'};   //是字符串

用cout打印一下c1,发现出现未知错误,打印出来的结果异常,而打印c2就是一个字符串。空字符对C-风格字符串来说至关重要,空字符是C-风格字符串的结尾,当cout碰到空字符就会停止。而在打印c1过程中,cout并没有在数组中发现空字符,它会一直读下去,直到在其他内存空间碰到空字符,才结束,所以在打印完c1数组内容后面会出现一些莫名的字符。

    好了,又有问题来了,请看下面代码:

int a[2] = {1,2};cout<< a <

为什么会出现这种情况呢, 这里牵扯到C++重载机制,对于char数组,cout输出数组内容,而对于其他类型数组,比如int数组,则输出首元素的地址。当然你要获取char数组地址,使用&b就可以实现。强调char数组名是指向首字符的地址的,这一点是不会变的,只不过cout处理char数组时,是输出地址里面的内容的。

    使用C-风格字符串,每次初始化时要用这么多单引号,太麻烦了,所以有另一种方式初始化。请看下面代码:

char ch1[6] = "ZZero";char ch2[] = "Everything starts from zero !"; //个人喜欢使用这种,不用去管大小,但是不提倡这种。

2.    C++字符串

    c++字符串它的头文件是string,string类位于名称空间std中,因此要使用string对象就要用到using编译指令,或者使用std::string来引用它。

#include 
using namespace std;//string 初始化 string str1 = {"Zzero"};string str2 {"ZZero"};string str3 = "ZZero";

转载于:https://my.oschina.net/u/1257439/blog/373986

你可能感兴趣的文章