C++Primer第五版 第三章习题答案(1~10)
2016-11-22 14:40
507 查看
第三章
3.1:
知识点:using声明命名空间。注意的是头文件中不应该包含using声明,因为在引用头文件时,会将头文件中的内容拷贝到文件中来,如果头文件中包含了using声明,那么可能每一个头文件中都会包含using声明,可能会造成名字的冲突。
常加:using namespace std ;(将标准库声明)
3.2
知识点:读入一整行和读入一个词主要的差别可以用getline()函数来实现。使用方法:getline(cin , stringname)
3.3
对于string类的输入函数,它会自动忽略开头的空白(空格、制表符、换行等等),从第一个真正的字符开始直到下一个空白。
对于getline()函数,它会保存字符串中的空白符,它读入数据,直到遇到换行符位置。
3.4
对于字符串的比较:比较的是字符在字典中的顺序 :b>a ,小写字母大于大写字母。
长度比较可以用size()函数。
字符串比较:
测试:
字符串长度比较:
测试结果:
3.5
连接字符串直接“+”即可。
分隔开来
3.6
注意这里书上使用了C++11的新标准:范围FOR语句,是不支持VS2010的,所以我只能用这种比较笨的方法了。
3.7
这里只用char的话也是可以的,因为每一个元素都是char类型的。
3.8
我这里就是用的传统的for循环,感觉还不错~
while的话也可以,但是我们已经知道循环的次数了,最好还是用for比较好。
3.9
不合法,因为字符串S是一个空字符串,第一个元素是未知的,引用非法。
3.10
这里主要使用到了自带的函数:ispunct()判断字符是否为标点符号~
3.1:
知识点:using声明命名空间。注意的是头文件中不应该包含using声明,因为在引用头文件时,会将头文件中的内容拷贝到文件中来,如果头文件中包含了using声明,那么可能每一个头文件中都会包含using声明,可能会造成名字的冲突。
常加:using namespace std ;(将标准库声明)
3.2
知识点:读入一整行和读入一个词主要的差别可以用getline()函数来实现。使用方法:getline(cin , stringname)
#include <iostream> #include <string> using namespace std; void main() { string mystring; while (getline(cin , mystring)) { cout<<mystring<<endl; } }一次读入一整行
#include <iostream> #include <string> using namespace std; void main() { string mystring; while (cin>>mystring) { cout<<mystring<<endl; } }一次读入一个词
3.3
对于string类的输入函数,它会自动忽略开头的空白(空格、制表符、换行等等),从第一个真正的字符开始直到下一个空白。
对于getline()函数,它会保存字符串中的空白符,它读入数据,直到遇到换行符位置。
3.4
对于字符串的比较:比较的是字符在字典中的顺序 :b>a ,小写字母大于大写字母。
长度比较可以用size()函数。
字符串比较:
#include <iostream> #include <string> using namespace std; void main() { string mystring1 , mystring2; cin>>mystring1>>mystring2; if (mystring1 != mystring2) { cout<<(mystring1 >= mystring2 ? mystring1 : mystring2)<<endl; } }
测试:
字符串长度比较:
#include <iostream> #include <string> using namespace std; void main() { string mystring1 , mystring2; cin>>mystring1>>mystring2; if (mystring1.size() != mystring2.size()) { cout<<(mystring1.size() >= mystring2.size() ? mystring1 : mystring2)<<endl; } else { cout<<"The length of these strings are the same!"<<endl; } }
测试结果:
3.5
连接字符串直接“+”即可。
#include <iostream> #include <string> using namespace std; void main() { string mystring; string sumstring; while (getline(cin ,mystring)) { sumstring += mystring; cout<<sumstring<<endl; } }
分隔开来
#include <iostream> #include <string> using namespace std; void main() { string mystring; string sumstring; while (getline(cin ,mystring)) { sumstring = sumstring+mystring+" "; cout<<sumstring<<endl; } }我这里投机取巧了~
3.6
#include <iostream> #include <string> using namespace std; void main() { string mystring("cdsiao"); int num = mystring.size(); for (int i=0 ; i<num ; i++) { mystring[i] = 'X'; } cout<<mystring; }
注意这里书上使用了C++11的新标准:范围FOR语句,是不支持VS2010的,所以我只能用这种比较笨的方法了。
3.7
这里只用char的话也是可以的,因为每一个元素都是char类型的。
3.8
我这里就是用的传统的for循环,感觉还不错~
while的话也可以,但是我们已经知道循环的次数了,最好还是用for比较好。
3.9
不合法,因为字符串S是一个空字符串,第一个元素是未知的,引用非法。
3.10
#include <iostream> #include <string> using namespace std; void main() { string mystring("cdsi4325#@ao"); int num = mystring.size(); for (int i=0 ; i<num ; i++) { if (!ispunct(mystring[i])) cout << mystring[i]; } }
这里主要使用到了自带的函数:ispunct()判断字符是否为标点符号~
相关文章推荐
- C++Primer第五版 第九章习题答案(1~10)
- C++Primer 中文版 第五版 第三章课后习题答案
- C++Primer第五版 第三章习题答案(11~20)
- C++Primer第五版 第三章习题答案(41~45)
- C++Primer第五版 第三章习题答案(31~40)
- C++Primer第五版 第二章习题答案(1~10)
- C++Primer第五版 第十章习题答案(1~10)
- C++Primer第五版 第十八章习题答案(1~10)
- C++Primer第五版 第十二章习题答案(1~10)
- C++Primer第五版 第十六章习题答案(1~10)
- C++Primer第五版 第十九章习题答案(1~10)
- C++Primer第五版 第七章习题答案(1~10)
- C++Primer第五版 第五章习题答案(1~10)
- C++Primer第五版 第三章习题答案(21~30)
- C++Primer第五版 第八章习题答案(1~10)
- C++Primer第五版 第十一章习题答案(1~10)
- C++Primer第五版 第十三章习题答案(1~10)
- C++Primer第五版 第十五章习题答案(1~10)
- C++Primer第五版 第四章习题答案(1~10)
- c++primer(第五版) 第十二章 动态内存习题答案