C++ Primer学习笔记 - 13 - 字符串、向量和数组 (一)

3.1 命名空间的using声明

主要概念

  1. 每个using声明引入命名空间中的一个成员。(实际操作中发现只要引入命名空间就可以使用所有的可用成员)
  2. 头文件不应该包含using声明。

练习

练习3.1 使用恰当的using声明重做和1.4.1节和2.6.2节的练习

emmmm…实在是没必要重做了,就不写了。

3.2 标准库类型string

3.2.1定义和初始化操作

  1. string类型的定义模式和其他类的定义格式没有特别大的区别;
  2. 注意拷贝初始化和直接初始化的区别,一般而言用“=”是拷贝初始化,用括号是直接初始化。

3.2.2string对象上的操作

  1. string上有许多基本操作:
os << s
is >> s 
s[n]
s1+s2
s1=s2
s1==s2
s1!=s2
<,<=,>,>=
  1. string中的empty方法可以获得string值的状态,为空返回true,否则返回false
  2. string中的size()可以获得当前字符串长度,注意返回类型是size_t类型,输出是unsigned int型,注意使用时的类型判断。
  3. getline方法可以整行获取输入值,要两个参数:
getline(cin,str);
  1. C++中不允许字符串字面值直接相加,使用时要注意。

3.2.2节练习

  1. 练习3.2:编写一段程序,从标准输入中一次读入一整行,然后修改该程序使其一次读入一个词

使用getline一次读入一整行,普通的cin一次读入一个词

string str;
//读入一整行
getline(cin,str);
//读入一个词
cin >> str;
  1. 练习3.3:请说明string类的输入运算符和getline函数分别是如何处理空白字符的。

cin输入string会忽略开始的空白,以空格或换行结束输入
getline只以换行结束,不忽略空白

  1. 练习3.4 :编写一段程序读入两个字符串,比较其是否相等并输出结果。如果不相等,输出长度较大的那个字符串。
	string str1,str2;
	cin >> str1 >> str2;
	if(str1 == str2)
	{
		cout << "两个" << str1 << "相等" << endl;
	}
	else if(str1 > str2)
	{
		cout << "较大的string:" << str1 << endl;
	}
	else
	{
		cout << "较大的string:" << str1 << endl;
	}
  1. 练习3.5:编写一段程序从标准输入中读入多个字符串并将它们连接在一起,输出连接成的大字符串。然后修改上述程序,用 空格把输入的多个字符串分隔开来。
//直接连接:
	string str(""),res(str);
	while(cin){
		cin >> str;
		res += str;
	}
	
	cout << "输入的结果:" << res << endl;
	//使用空格连接
	string str(""),res(str);
	while(cin){
		cin >> str;
		res += str;
		res += " ";
	}
	
	cout << "输入的结果:" << res << endl;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值