(四)复合类型 1.拼接字符串常量: endl(cout << "i would gave my right ar""m to be a great biolinist . \n"); //可以将两个引号扣起来的字符串合并为一个,直接把第二个字符串首字节替代第一个字符串的\0
2.cin 字符串的输入 输入 :shijiazhuang(空格)baoding ( enter ) //一次性读取两个字符串 //当ss读取第一个字符串后自动末尾添加‘\0’,第二个字符串在队列中等待,当再次遇到cin时,输出第二个字符串,添加‘\0’. shijiazhuang(enter)baoding ( enter ) // 分别作为两次进行分别读取两个字符串。 cin.getline( name , Arsize ) ; 首先,第一个参数为数组名,第二个参数为读取的字符数大小。它在读取指定数目的字符或者换行符时停止读取。 其次,getline()函数每次读取一行,它通过换行符来确定行尾,但不保存换行符。相反,在储存字符串时,他用空字符来代替换行符。 最后,如果输入的第一个字符串超过getline()的大小,超出被截断,相邻的getlien()直接读入空,报错。 (重点) cin.getline(name,Arsize) 与 cin.get(name,Arsize) 的几点区别: 相同点:(都是面向行的,也就是说只要在其数组大小范围内,在换行符之前所有字符都会被写进数组,包括空格) 不同点:cin.getline() 函数,回车符确定结尾,不保存换行符,但把换行符转化为空字符,表示结尾。 cin.get() 函数,不读取换行符,并丢弃,因而换行符会在输入列表中等待。 例题1:cin.get(name,Arsize) ;//读取完整行字符串,换行符不要 cin.get(name, Arsize); // 读取换行符报错, 修改方案:1.在两个cin.get()函数中间插入一个函数读取换行符 如:cin.get() . 2.采用函数拼接合并,即:cin.get(name , Arsize).get(); //第一个get()读取行字符串,第二个get()函数,接受换行符。 (注意:采用这两种方案处理cin.get()函数后,其使用方法完全雷同cin,getline()函数) get() 与 getline() 函数更加仔细在于: (1):get() 停止读取的原因在于已读取整行,而不是数组长度,如果超出范围保存在等待队列中,被阻断,如不需要,可以使用cin,clear() 清理。 如果是换行符,说明已经读取完毕。 (2):getline() 只是读取整行,把换行转化为空格,按照数组大小存储,而不会管超出数组大小字符的处理,关闭后面的输入。 (3)在数组的存储大小范围之内,对于两个连续输入的处理: 两个数组:分别输入,空格隔开。 两个cin.get() :使用函数拼接。cin.get().get(); 两个cin.getline() : 分别输入,enter 隔开;
3.c++ 的新类型 string (#include<string> 或者 std::string) (1) string 赋值,拼接,附加 std::string;
string ss= "shijiazhuang";
string ss1 = "hebeisheng";
string ss2 = ss + ss1 ; // 两个string类变量的拼接,(第二个string 首字符取代第一个string末尾的空字符,相当于c语言strcat()函数) ss += s1 ; // ss = ss +s1; ss +="a nice day"// ss = ss + "a nice day"; ss = "shijiazhuang nice a day";
string ss3 = ss ; //可以将一个string类变量赋值给另一个string类变量
cout << " ss2 = " << ss2<<endl;
cout << " ss3 = "<<ss3<<endl;
int len1 = ss1.size(); //c++ 风格
int len2 = strlen(ss1); // c语言求字符串字节函数 (2)c++结构体赋值书写形式: struct inflatable { char name[20]; float volume; double price ; }; inflatable guests[2] = //书写形式 { { "bambi",0.5,21,99}, { " godzilla",2000,565,99} } (3)共用体引用方式 共用体:共用体的句法和结构体相似,但只能同时存储其中的一种类。共用体的长度为最大成员长度。 用途:当数据项使用两种或者更多种格式(但不会同时使用)时,可以节省空间。 下限:枚举量的最小值,如果它不小于0 ,下限 = 0;否则,采用上限方法,加上负号。如:最小枚举量 = -6 ;最大幂 = -8 ;下限 = -8 +1=-7; |