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

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;
}

未完待续,明天加油!

posted @ 2018-03-16 22:43  抹茶奶绿不加冰  阅读(159)  评论(0编辑  收藏  举报