首页 / C++ / 复习C++(四)复合类型①
复习C++(四)复合类型①
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了复习C++(四)复合类型①,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3208字,纯文字阅读大概需要5分钟。
内容图文
![复习C++(四)复合类型①](/upload/InfoBanner/zyjiaocheng/639/a59b304b179a4c5ca33bb03bb99b8df9.jpg)
一、数组
数组声明时,应指出:
1.存储在每个元素中值的类型
2.数组名
3.数组中的元素数(一般不能是变量,下文将介绍如何打破这一限制)
因为数组是使用其他类型(int,char,float等)来创建的,所以它是一种复合类型。C++数组从0开始编号。
数组的初始化
1.只有在定义数组时才能初始化,不能将一个数组赋给另一个数组。如果只对数组的一部分初始化,编译器会自动把其他元素赋0。如果想把所有数组元素赋0,只需将第一个元素赋0即可(或直接让{ }中为空)。
2.如果[ ]中为空,C++将自动计算元素个数(通过赋值的个数)。
3.禁止缩窄转换。
二、字符串
C-风格字符串结尾为空字符 \0。空字符标识字符串结尾,比如cout在输出时读取到\0才结束输出,否则将内存中随后的各个字节解释为要打印的字符,直到遇到\0。
字符串常量
用" ",双引号括起来的字符串叫字符串常量(或字符串字面值)。
这种方法不用显式地表示空字符\0。"A"不等于’A’,‘A’代表A的ASCII码,"A"实际代表字符串所在的内存地址。
字符串可以直接给数组赋值
例
1.char name[15];
name=“Leonard”;
这时,name[0]就是’L’
字符串输入
1.cin使用空白(空格、Tab、回车)确定字符串的结束位置,即cin获取字符数组时只读取一个单词,并自动添加空字符。
2.面向行输入
cin这个类提供面向行的类成员函数:getline()和get(),这两个函数读到换行符才停止。不同的是,getline将读取并丢弃换行符,而get将换行符留在输入队列中。
1.cin.getline() //有两个参数,第一个表示储存此行的数组的名称,第二个是要读取的字符数。
例:
cin.getline(name,18)/要给结尾处的空字符留一个空间,在储存时,丢弃换行符,结尾储存空字符。/
2.cin.get()//与getline类似,只是将换行符保留在输入队列中
例
cin.get(FirstName,18);
cin.get(LastName,18);
此时,第二个get读取时,发现输入队列第一个字符是换行符,于是直接结束读取,第二行就无法读取了。
但如果在中间加入无参数的get
cin.get(FirstName,18);
cin.get(); //读取一字符(即使是换行符)
cin.get(LastName,18);
这一问题得以解决。
在这里,也可以使用cin.get(FirstName,18).get();
cin.get(LastName,18).get();
之所以可以这样连接,是因为第一个cin.get()返回了一个cin对象,这个对象调用了第二个get()。
读取空行后,将设置失效位,后面的输入将被阻隔,但可以用cin.clear();来恢复。如果输入的字符数比指定的多,多余的将被留在输入队列里。
三、处理字符串的新方式——string类
使用string,首先要添加头文件或者。
string来处理字符串和使用数组基本类似。区别在于,可以将string对象声明为简单变量,而不是数组
例:
string str;
string strX=“Leonard”;
程序能够自动处理string的大小。所以,string类型比char数组更安全。char数组只是用来储存字符串,而string类型本身就是一个字符串。
可以将一个string对象赋值给另一个string对象。+号可以将两个字符串连接。
string的其他操作:strcpy(str1,str2);//将str2的值复制到str1。
strcat(str1.str2);//将str2的值接到str1末尾。
strlen(str1);/指出str1的长度。(未初始化的string类长度自动为0)/
需要注意的是,getline只适用于数组。事实上istream类的设计没有考虑对string类的处理(因为那时候还没有引入string类),但仍然可以使用cin>>str;这样的语句。
四、其他形式的字符串字面值
这里只举例
wchar_t n[]=L"hahahaha";
char16_t m[]=u"AAAAAA";
char32_t x[]=U"asdasjfhkjhkjahskjfh";
//注意u和U分别对应char16_t和char32_t,不可混用。
还有一种类型,原始字符串(raw)。
例:
cout<<R"(wahduaw " "asdasbjk"\n")"
这时\n不表示换行符,而是表示它本身,也就是屏幕上会显示 \n。
其实,在raw中,定界符可自定义,在"和(之间加任意基本字符。但是注意,首尾必须一致,如
cout<<R"saa(asjkdlaskjd)")saa"
前缀R也可以和u,U等前缀结合,R可在前也可在后,如RU,uR都可以。
内容总结
以上是互联网集市为您收集整理的复习C++(四)复合类型①全部内容,希望文章能够帮你解决复习C++(四)复合类型①所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。