C++Primer第五版 9.5.3节练习
来源:互联网 发布:知天命之年是什么意思 编辑:程序博客网 时间:2024/05/22 17:14
练习9.47:编写程序,首先查找string“abc3d7R4E6”中的每个数字字符,然后查找其中每个字母字符。编写两个版本的程序,第一个要使用find_first_of,第二个要使用find_first_not_of.
答:见程序练习9.47
练习9.48:假定name和numbers的定义如325页所示,numbers.find(name)返回什么?
答:返回string::npos(参考P325,9.5.3)
练习9.49:如果一个字母延伸到中线之上,如d或f,则称其有上出头部分(ascender),如果一个字母延伸到中线之下,如p或g,则称其有下出头部分(descender)。编写程序,读入一个单词文件,输出最长的既不包含上出头部分,也不包含下出头部分的单词。
答:见练习9.49.cpp
练习9.47
/**练习9.47*日期:2015/8/7*问题描述:练习9.47:编写程序,首先查找string"abc3d7R4E6"中的每个数字字符,然后查找其中每个字母字符。编写两个版本的程序,第一个要使用find_first_of,第二个要使用find_first_not_of.*说明;字符的查找 *作者:Nick Feng *邮箱:nickgreen23@163.com */#include <iostream>#include <string>using namespace std;void use_find_first_of(string str, string find_str){ auto pos = 0; while((pos = str.find_first_of(find_str,pos)) != string::npos) { cout << "char: " << str[pos] << " index: " << pos << endl; ++pos; } cout << endl;}void use_find_first_not_of(string str , string not_find_str){ auto pos = 0; while((pos = str.find_first_not_of(not_find_str,pos)) != string::npos) { cout << "position: " << pos << " char: " << str[pos] << endl; ++pos; } cout << endl;}int main(){ string str = "abc3d7R4E6"; string numbers = "0123456789"; string letters = "abcdRE"; use_find_first_of(str, numbers); use_find_first_of(str, letters); use_find_first_not_of(str, letters); use_find_first_not_of(str, numbers); return 0;}
练习9.48
#include <iostream>#include <string>using namespace std;int main(){ string numbers("0123456789"), name("r2d2"); //cout << numbers.find(name) << endl; auto pos = numbers.find(name); cout << pos << endl; return 0; }
练习9.49
/**练习9.49*日期:2015/8/7*问题描述:练习9.49:如果一个字母延伸到中线之上,如d或f,则称其有上出头部分(ascender),如果一个字母延伸到中线之下,如p或g,则称其有下出头部分(descender)。编写程序,读入一个单词文件,输出最长的既不包含上出头部分,也不包含下出头部分的单词。*说明:弄清题意再下手,不然想了半天,发现题目都没读对,怎么可能做出来 *作者:Nick Feng *邮箱:nickgreen23@163.com */#include <iostream>#include <string>#include <vector>#include <fstream>using namespace std;void output_max_subword(string filename){ string s = "bdfhkltgjpqy"; //找出上下头的字母 vector<string> vec; string word; ifstream stream(filename); //读入单词文件 while(!stream.eof()) { stream >> word; auto pos = 0; pos = word.find_first_of(s,pos); if(pos == string::npos) vec.push_back(word); //将不包含上下头的字母放进容器 } auto count = 0; for(auto i = 0; i != vec.size(); ++i) //找尺寸最大的字符串输出 { auto max = vec[0].size(); if(vec[i].size() >= max) count = i; } cout << vec[count] << endl;}int main(){ output_max_subword("word.txt"); return 0;}
0 0
- C++Primer第五版 9.5.3节练习
- C++Primer 第五版 1.1节练习
- C++Primer第五版 1.3节练习
- C++Primer第五版 1.6节练习
- C++Primer第五版 2.4节练习
- C++Primer第五版 3.1节练习
- C++Primer第五版 4.2节练习
- C++Primer第五版 4.3节练习
- C++Primer第五版 4.4节练习
- C++Primer第五版 4.6节练习
- C++Primer第五版 4.7节练习
- C++Primer第五版 4.8节练习
- C++Primer第五版 4.9节练习
- C++Primer第五版 4.5节练习
- C++Primer第五版 5.1节练习
- C++Primer第五版 5.2节练习
- C++Primer第五版 6.1节练习
- C++Primer第五版 6.4节练习
- iOS开发-语法篇-block详解
- 使用pywin32读写Excel,出现类Open方法无效的解决方法
- 什么是反向代理服务器如何配置反向代理服务器
- 面试练习题-100w个数中找出最大的100个数
- Java中多客户端同时连接服务端
- C++Primer第五版 9.5.3节练习
- C++重载操作符之二(输入>>,输出<<,以及乘法)
- Android中内存缓存和文件缓存的实现原理
- linux 通过 crontab 和 shell 每三秒跑一次check
- Linux系统:开放源代码应用程序的编译与安装
- 用JDK中的 jps、jinfo、jstat、jstack、jmap、jconsole等命令对JVM,内存,线程进行分析和故障诊断
- C算法-求一个加上100和168后为完全平方数的整数
- 九宫格布局
- 字符串替换(持续更新中)