C++Primer第三章习题
2017-03-20 16:53
78 查看
【3.2】编写一段程序从标准输入中一次读入一整行,然后修改该程序使其一次读入一个词。
#include<iostream> #include<string> using namespace std; void main() { string line,word; if(getline(cin,line)) cout<<line<<endl; if(cin>>word) cout<<word<<endl; }
【3.4】编写一段程序读入两个字符串,比较其是否相等并输出结果。如果不相等,输出较大的那个字符串。改写上述程序,比较输入的两个字符串是否等长,如果不等长,输出长度较大的那个字符串。
#include<iostream> #include<string> using namespace std; void main() { string s1,s2,temp; cin>>s1>>s2; if(s1!=s2) temp=s1>s2?s1:s2; cout<<temp; }
#include<iostream> #include<string> using namespace std; void main() { string s1,s2,temp; cin>>s1>>s2; if(s1.size()!=s2.size()) temp=s1.size()>s2.size()?s1:s2; cout<<temp; }
【3.5】编写一段程序从标准输入中读入多个字符串并将它们连接在一起,输出连接成的大字符串。然后修改上述程序,用空格把输入的多个字符串分隔开来。
#include<iostream> #include<string> using namespace std; void main() { string s1,s2; while(cin>>s2) s1=s1+" "+s2; cout<<s1; }
【3.6】编写一段程序,使用范围for语句将字符串内的所有字符用X代替。
#include<iostream> #include<string> using namespace std; void main() { string str; cin>>str; for(auto c:str.size()) str[c]='X'; cout<<str<<endl; }
【3.10】编写一段程序,读入一个包含标点符号的字符串,将标点符号去除后输出字符串剩余的部分。
#include<iostream> #include<cctype> #include<string> #include<cstdlib> using namespace std; void main() { string str; cout<<"Enter your string(hit ENTER when finished):"<<endl; if(getline(cin,str)) { int i; for(i=0;i<str.size();i++) { if(ispunct(str[i])) { int j; for(j=i;j<str.size()-1;j++) str[j]=str[j+1]; str.erase(str.end()-1); } } } cout<<"The string without punctuation is : "<<str<<endl; }
【3.17】从cin读入一组词并把它们存入一个Vector对象,然后设法把所有词都改写为大写形式。输出改变后的结果,每个词占一行。
#include <iostream> #include <string> #include <vector> using namespace std; int main() { vector<string> V; for(string t; cin >> t; V.push_back(t)); for(auto &str : V) for(auto &ch : str) ch = toupper(ch); for(auto i=V.begin(); i!=V.end(); ++i) cout << *i << endl; return 0; }
【3.20】读入一组整数并把它们存入一个vector对象,输出第1个和最后1个元素的和,接着输出第2个和倒数第2个元素的和,以此类推。
#include<iostream> #include <vector> #include <string> using namespace std; using namespace std; int main(){ vector<int> V; for(int t; cin>>t; V.push_back(t)); auto s = V.begin(); auto e = --V.end(); for(;s<=e; ++s, --e) if(s == e) cout << *s << endl; else cout << *s + *e << endl; return 0; }
【3.23】编写一段程序,创建一个含有10个整数的vector对象,然后使用迭代器将所有元素的值都变成原来的两倍。输出vector对象的内容,检验程序是否正确。
#include<iostream> #include <vector> #include <string> using namespace std; int main() { vector<int> V(10); for(int i=0;i<10;i++) { cin>>V[i]; V[i]*=2; cout<<V[i]<<endl; } return 0; }
【3.41】编写一段程序,用整型数组初始化一个vector对象。
#include<iostream> #include <vector> using namespace std; int main() { int ca[]={1,2,3,3,4}; vector<int> ivec(begin(ca),end(ca)); for(int i=0;i<ivec.size();i++) cout<<ivec[i]; return 0; }
【3.42】编写一段程序,将含有整数元素的vector对象拷贝给一个整型数组。
#include<iostream> #include <vector> using namespace std; int main() { vector<int> intvect; int n=0; while(cin>>n) { intvect.push_back(n); } int *pa=new int[intvect.size()](); for(vector<int>::iterator iter=intvect.begin();iter!=intvect.end();iter++) { *pa=*iter; cout<<*pa<<endl; pa++; } return 0; }
相关文章推荐
- C++Primer笔记之关联容器的使用详解
- 如何更好的利用《C++ Primer》学习C++?
- 7.3.4 friend class
- c++primer plus 2.7编程练习作业
- C++primer 第十章 单词转换程序 运行不了解决办法
- 头文件中包含const与非const对象
- 几个标准库类型的简单使用
- C++Primer _vector _习题3.13
- C++Primer _vector _习题3.14
- Sales_item.h (C++ Primer 第五版)
- forward_list未定义+=符号,而改用advance()函数改变迭代器
- C++primer 11.2.3节练习解答11.12-11.14
- C++Primer读书笔记第三章(下)
- C++ primer 笔记
- C++Primer学习笔记
- c++ primer 1.4.2节练习
- 重读c++primer (第五版) -- 引子
- (福利)”C++Primer笔记“和”Java经典入门笔记“
- C++复习学习提纲
- C++Primer练习与答案——3.3.3节