第4章 复合类型

第 4 章  复合类型
一、数组
潜规则:
① 只有在定义数组时才能使用初始化。
② 不能将一个数组赋给另一个数组。
③ 如果初始化为{1},则表示第一个元素被设置为1,其他元素被设置为0。

二、字符串
注意要点:
① 在确定存储字符串所需的最短数组时,记得将结尾的空字符计算在内。
② 如果要显示部分字符串,只需将需要的字符串的结尾标记为'\0'。
每次读取一行字符串输入
   (1)getline()
     使用通过回车键输入的换行符来确定输入结尾。数组中用cin.getline(name,n),其他类型用getline(cin,name).
值得注意的是,getline还允许在输入字符串时增加其他分隔符,使用方法是把可以作为分隔符的第三个参数传递给getline,例如:
#include<iostream>
#include<string>
using namespace std;

int main()
{
	for(int i=0;i<2;i++)
	{
		string city,state;
		getline(cin,city,',');
		getline(cin,state);
		cout<<"City:"<<city<<" State:"<<state<<endl;
	}
	return 0;
} 
运行结果:
Beijing,China
City:Beijing State:China
San Francisco,the United Ststes
City:San Francisco State:the United Ststes

   (2)get()
       a,使用不带任何参数的cin.get()调用可读取下一个字符(即使是换行符)
       b,cin.get(name,n)输入整行
       c,cin.get(char)读取输入中的下一个字符串(即便是空格)
   (3)混合输入数字和面向行的字符串需要添加上述的a或c形式读取并丢弃换行符。如:
       cin >> year;
       cin.get();
       cin >> name;
       或者直接合并:(cin >>year).get();

三、string 类简介
潜规则:
① 可以将一个string对象赋给另一个string对象。
② 可以使用运算符+用于字符串的合并。
③ 在头文件cstring下,可以使用函数strcpy()将字符串复制到字符数组中,使用函数strcat()将字符串添加到字符数组末尾。

四、结构及共用体
共用体(union)是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。

五、枚举
例如:
enum spectrum {red,orange,yellow,green,blue,violet,indigo,ultraviolet};
① 可以用枚举名来声明这种类型的变量:spectrum band;
② 在不进行强制类型转换的情况下,只能将定义枚举时使用的枚举量赋给这种枚举的变量:
     band = orange;
③ 枚举中只定义了赋值运算符:
    ++band(×)
    band = orange + red(×)
④ 如果 int的值是有效的,则可以通过强制类型转换,将它赋给枚举变量:
    band = spectrum(3);
⑤ 枚举类型的名称是可以省略的。

六、指针、数组和指针算数
对于const char * bird = "wren"的解释:
① "wren"实际表示的是字符串的地址
② 字符串的字面值是常量,故在声明中使用关键字const。

七、数组的替代品
1、vector
   包含头文件vector,是一种动态数组。
vector<typename> vt(n)
  示例:
<strong>#include<iostream>
...
using namespace std;
vector<int> vi;
int n;
cin >> n;
vector<double> vd(n);</strong>
2、模板类 array(c++11)
   包含头文件array。
array<type,n>arr
 示例:
#include<iostream>
...
using namespace std;
array<int,5> ai;
array<double,4> ad = {1.2,2.1,3.43,4.3};
与vector不同的是,n不能为变量,且可直接将一个array对象赋给另一个。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mypollyanna

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值