第4章数组和字符串

1. 数组:是一大块存储数据块,这个数据块被等量的分为n多份,每一份的存储单元存储相同类型数据。

2. 数组是从索引0开始,数组没有下标检测。数组越界错误被称为护栏柱错误

3. 初始化数组:int intarr[5] = {0};  int intarr[5] = { 0, 0, 0, 0, 0}; 这两个是等价的,就是声明一个存储5个整数的数组,初始化每一个为0。可以少些初始化数据如 int intarr[5]={2, 5};初始化前两个分别为2 5,但不可多初始化,int intarr[5]={1, 2, 3, 4, 5, 6};这就是错误的,虽然不会报错,但出错是肯定的。

4. 字符数组:char str[]="Hello World"; 把这个字符串保存到str数组中,第一个位置保存是H字符,第二个是e,一次类推,中间的空格也会保存为一个位置,保存完后会自动加一个\0作为结束符。这个数组一共有12个,包括最后的结束符

5. cin: char buff[80]={'\0'}; cin >> buff; 定义一个80字符的数组,每个数组初始化为结束符,然后输入一个字符串给这个数组。但是输入是,如果字符串之间有空格,那么cin会自认为是字符串结束,只接受前面的一部分。况且这样输入也会有潜在威胁,如果你写的字符串每空格长度多余80,那么就会下标越界,很危险。可以用cin的get函数。cin.get(buff, 79); 用这个代替cin >> buff; 这句意思是读取最多79个字符(包括空格)给buff

6. strcpy():strcp(str1, str2); 把str2的数据复制给str1.这里要防止str2的数据长度大于str1.

7. strncp():strncp(str1, str2, n); 从str2中读出n个字符拷贝给str1. 这两个都是对字符串操作的函数,如使用要包含string头文件:#include <string.h>

8. string类:上面这种用数组来管理字符串不太方便,c++提供了一个类,string,在开始包含string类,#include <string> ,这样可以声明一个字符串变量String str1; String是c++的一个保留字,和int相似。这样的字符串变量还有这些用法。String str1("This is my test"); 声明变量str1,并赋值为This is my test。String str2; str2=str1; 把str1赋值到str2。str2="Hello"; 对str2重新赋值。String str3; str3=str1+str2; 把str1和str2的字符串连起来赋值给str3。

 

下章见(以上全是个人观点,如有不当,敬请提出)
发布了27 篇原创文章 · 获赞 2 · 访问量 5万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章