chapter 3 命名空间的using声明,标准库类型string

时间:2022-09-08 09:21:29

2018-03-16

好像应该把代码们贴出来。。。不然像只是在刷题一样。。。学校图书馆学习氛围真强大,去晚了就没位置了。。。

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

using namespace std;

或者:

using std::cin; using std::cout; using std::endl;

 

命名空间的using使用

 1 #include<iostream>
2 using std::cin;
3 int main()
4 {
5 int i;
6 cin >> i;
7 //cout << i;//错误,没有对应的using声明
8 std::cout << i;
9 return 0;
10 }

 

读取未知数量的string对象

1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5 string word;
6 while(cin >> word)
7 cout << word << endl;
8 return 0;
9 }

 

使用getline读取一整行

 1 /*
2 getline函数的参数是一个输入流和一个string对象,
3 函数从给定的输入流中读入内容,直到遇到换行符为止(注意换行符也被读进来了),
4 然后把所读的内容存入到那个string对象中去(注意不存换行符)
5 一遇到换行符就结束读取操作
6 */
7 #include<iostream>
8 using namespace std;
9 int main()
10 {
11 string line;
12 //每次读取一行,直至到达文件末尾
13
14 while(getline(cin,line))
15 cout << line <<endl;
16 return 0;
17 }

 

string的empty和size操作

 1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5 string line;
6 while(getline(cin,line))
7 if(!line.empty())
8 cout << line << endl;
9 return 0;
10 }

 

size函数

 1 //每次只读取一整行,输出其中超过80个字符的行
2 #include<iostream>
3 using namespace std;
4 int main()
5 {
6 string line;
7 while(getline(cin,line))
8 if(line.size() > 80)
9 cout << line << endl;
10 return 0;
11 }

 

string::size_type是一个无符号类型的值,而且能够存放下任何string对象的大小,所有用于存放string类的size函数返回值的变量,都应该是string::size_type类型的。

 

3.2 编写一个程序从标准输入中一次读入一整行,然后修改该程序使其一次读入一个词。

程序1如上 程序二:

 1 #include<iostream>
2 #include<string>
3 using std::cin;
4 using std::cout;
5 using std::endl;
6 using std::string;
7 int main()
8 {
9 string word;
10 while(cin >> word)
11 {
12 cout << word << endl;
13 }
14 return 0;
15 }

 

3.3 请说明string类的输入运算符和getline函数分别是如何处理空白字符的。

string:从第一个非空字符开始读,知道遇到下一个空白字符。

getline: 空白字符也会读,遇到换行符就结束。

 

3.4 编写一段程序读入两个字符串,比较其是否相等并输出结果。如果不相等,输出较大的那个字符串。改写上述程序,比较输入的两个字符串是否等长,如果不等长,输出长度较大的那个字符串。

 1 #include<iostream>
2 #include<string>
3 using std::cin;
4 using std::cout;
5 using std::endl;
6 using std::string;
7 int main()
8 {
9 string s1, s2;
10 cin >> s1;
11 cin >> s2;
12 if(s1 == s2)
13 cout << "s1" << s1 << "s2" << s2;
14 if(s1 > s2)
15 cout << s1 << endl;
16 if(s1 < s2)
17 cout << s2 << endl;
18 return 0;
19 }

 

3.5 编写一段程序从标准输入中读入多个字符串并将它们连接在一起,输出连接成的大字符串。然后修改上述程序,用空格把输入的多个字符串分隔开来。

 

 1 #include<iostream>
2 #include<string>
3 using std::cin;
4 using std::cout;
5 using std::endl;
6 using std::string;
7 int main()
8 {
9 string sum;
10 string s;
11 while(cin >> s)
12 sum += s;
13 cout << sum << endl;
14 return 0;
15 }
#include<iostream>
#include
<string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main()
{
string s;
string sum;
while(cin >> s)
sum
= sum + s + " ";
cout
<< sum;
return 0;
}

未完待续,明天加油!