当前位置: 首页 > news >正文

【C++ Primer Plus习题】16.3

大家好,这里是国中之林!
❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←

问题:

这里是引用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解答:

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <cctype>
#include <fstream>
#include <vector>using namespace std;const int NUM = 26;//const string wordlist[NUM] = { "apiary","beetle","cereal","danger","ensign","florid",
//                            "garage","health","insult","jackal","keeper","loaner",
//                            "manage","nonce","onset","plaid","quilt","remote","stolid"
//                            "train","useful","valid","whence","xenon","yearn","zippy" };int main()
{ifstream fin;fin.open("word.txt", ifstream::in);if (!fin.is_open()){cerr << "Can't open file word.txt." << endl;exit(EXIT_FAILURE);}string word;vector<string>wordlist;if (fin.good()){while (fin >> word){wordlist.push_back(word);}}int length = wordlist.size();fin.close();srand(time(0));char play;cout << "Will you play a word game? <y/n> ";cin >> play;play = tolower(play);while (play=='y'){string target = wordlist[rand() % NUM];int length = target.length();string attempt(length, '-');string badchars;int guesses = 6;cout << "Guess my secret word.It has " << length << " letters,and you guess\n" << "one letter at a time.You get " << guesses << " wrong guesses.\n";cout << "Your word: " << attempt << endl;while (guesses>0&&attempt!=target){char letter;cout << "Guess a latter: ";cin >> letter;if (badchars.find(letter) != string::npos || attempt.find(letter) != string::npos){cout << "You already guessed char.Try again.\n";continue;}int loc = target.find(letter);if (loc == string::npos){cout << "Oh, bad guess!\n";--guesses;badchars += letter;}else{cout << "Good guess!\n";attempt[loc] = letter;loc = target.find(letter, loc + 1);while (loc!=string::npos){attempt[loc] = letter;loc = target.find(letter, loc + 1);}}cout << "Your word: " << attempt << endl;if (attempt != target){if (badchars.length() > 0){cout << "Bad choices: " << badchars << endl;cout << guesses << " bad guess left\n";}}}if (guesses > 0){cout << "That's right!\n";}else{cout << "Sorry, the word is " << target << ".\n";}cout << "Will you play another?<y/n>";cin >> play;play = tolower(play);}cout << "Bye\n";return 0;
}

运行结果:
在这里插入图片描述

考查点:

  • string类
  • cctype
  • 随机数
  • ifstream读文件
  • vector容器

注意:

  • find若找到字符返回对应的位置,可以设置起始位置找,下面就是找后面有没有重复的字母.
    在这里插入图片描述

2024年9月17日11:02:45

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PHP:强大的Web开发语言
  • 基于微信小程序的高校实验室管理系统的设计与实现
  • 数据结构之外部排序
  • ros学习笔记.4 Path Planning Part 2 (避障)
  • 【Linux基础】冯诺依曼体系结构操作系统的理解
  • 1.接口测试基础
  • 测试用例的了解
  • 【设计模式】创建型模式(四):建造者模式
  • Python中的魔法:探索自定义Context Manager的魅力
  • 7天速成前端 ------学习日志 (继苍穹外卖之后)
  • Eclipse折叠if、else、try catch的{}
  • leetcode01——27. 移除元素(双指针)、977. 有序数组的平方(双指针)、209. 长度最小的子数组(双指针/滑动窗口)
  • leetcode刷题day17|二叉树Part05(654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树)
  • MySQL:索引02——使用索引
  • React 嵌套类名样式不生效
  • 《深入 React 技术栈》
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • AHK 中 = 和 == 等比较运算符的用法
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • java2019面试题北京
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JDK 6和JDK 7中的substring()方法
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 从零开始在ubuntu上搭建node开发环境
  • 关于List、List?、ListObject的区别
  • 简单实现一个textarea自适应高度
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 在Unity中实现一个简单的消息管理器
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • MPAndroidChart 教程:Y轴 YAxis
  • ​水经微图Web1.5.0版即将上线
  • # 职场生活之道:善于团结
  • (14)Hive调优——合并小文件
  • (poj1.3.2)1791(构造法模拟)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十一)手动添加用户和文件的特殊权限
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)为C# Windows服务添加安装程序
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Framework 3.5安装教程
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • [C#]OpenCvSharp 实现Bitmap和Mat的格式相互转换
  • [c++] 自写 MyString 类
  • [C++]STL之map