#include
#include
using namespace std;
int main()
{
int flag=1,a[10005];
string s;
getline(cin,s);
if(s.find('h')!=-1&&s.find('x')!=-1&&s.find('t')!=-1&&s.find('c')!=-1&&s.find('l')!=-1)
{
string b=s.substr(s.find('h'));
if(b.find('x')==-1) flag=0;
b=s.substr(s.find('x'));
if(b.find('c')==-1) flag=0;
b=s.substr(s.find('c'));
if(b.find('t')==-1) flag=0;
b=s.substr(s.find('t'));
if(b.find('c')==-1) flag=0;
b=s.substr(s.find('c'));
if(b.find('l')==-1) flag=0;
}
else flag=0;
if(flag==1)
cout<<"I am glad to hear that.";
else cout<<"I do not know what r u talking about!";
}
基于new Bing的修改:
这段代码有一些问题。首先,它试图查找子序列 “hxtcl” 而不是 “hxctc”。其次,它使用了多个 if 语句来检查每个字符是否按顺序出现,但这种方法并不可靠,因为它没有考虑到字符可能出现在错误的顺序中。
下面是一个更可靠的解决方案:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
getline(cin,s);
int pos = 0;
string target = "hxctc";
for (char c : s) {
if (c == target[pos]) {
pos++;
}
if (pos == target.size()) {
break;
}
}
if (pos == target.size()) {
cout << "I am glad to hear that.";
} else {
cout << "I do not know what r u talking about!";
}
return 0;
}
这段代码首先读取用户输入的字符串,然后使用一个循环来遍历字符串中的每个字符。如果当前字符与目标子序列中的字符匹配,则将 pos 变量加 1。如果 pos 变量等于目标子序列的长度,则表示找到了子序列。最后根据 pos 变量的值输出相应的结果。
《C++ Primer中文版》本书面向C++语言的初学者,是一本很友好的自学教材。作者把C语言的基础概念和需要注意的编程细节说得很清楚,并且例程和习题丰富,相信认真读过之后,可以完成C语言入门这个目标。
《高质量程序设计指南》,墙裂推荐,这本书看得比较过瘾,书里面有一些编程规范的东西,对于写程序的人来说,还是不错的,可以培养好的编码习惯,加深了一些知识的巩固。比较实用,也适合面试前看看。
《Essential C++》是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到C++的函数和结构,也会学习到它们的设计目的和基本原理。
《More effective C++》,该书围绕55条准则,每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。
《C++ Templates中文版》,深入了解现代c ++模板的实用书籍。本书不仅是对C ++模板的权威解释,而且本书还深入地介绍了其他一般的C ++思想。
《STL源码剖析》详细地了解STL的底层实现机制,同时也可以对常用数据结构,C++内存管理拥有更深的理解。
其实还有《The C++ standard library(C++标准程序库)》、《C++并发编程实战》、《Thinking in C++(C++编程思想)》等,介绍的这些书我都买了,不过说实话,后面的几本都是泛泛的看了下,都没有认真学完。最后推荐三本最近微信读书上正在看的书。
《提高C++性能的编程技术》,本书认为20%的性能缺陷将会占用我们80%的时间。因此我们把精力集中在最有价值的地方。本书详细讨论了临时对象、内存管理、继承、虚函数、内联、引用计数以及STL等一切有可能提升C++效率的细节内容。无论你是相关领域的从业人员,还是C++程序设计爱好者,或者是渴望突破编程瓶颈、大幅提升自我修为的程序设计爱好者,本书都必将使你获益良多。
《从缺陷中学习C/C++》从本质上来说,这就是一个C/C++的错题集。全书中包括63个问题引发的错误,即书名中的缺陷。也是避坑指南。
《用地图看懂世界格局》,这个有点跑题,不过我觉得这本书还不错,就推荐给有兴趣的小伙伴。