A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


(四)复合类型
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;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马