c++ - C ++确定整个句子是否是回文,而不仅仅是第一个单词
问题描述
我正在编写一个从输入文件中读取的程序,每行都有一个句子。例如:
杰克和“吉尔”
一个人,一个计划,一条运河——巴拿马
甚至,永远不要走得太远。
尤斯顿看出我不是苏。
我们必须确定这些句子是否是回文,我写了一个 do while 循环。它似乎工作正常,除了我只需要它来读取整行而不是第一行。我得到一个输出说,假设我的第一行是杰克和“吉尔”:
杰克不是回文
然后我问用户是否想继续,我希望它转到下一行,所以我说是然后得到
并且不是回文
我可以在这里看到它读取句子中的下一个单词,而不是下一行。我认为这是因为它正在读取空格来确定下一个要查看的单词。
本质上,我需要我的程序阅读整行,忽略标点符号,如 Jill 周围的引号、巴拿马旁边的 -- 等等。所以我会得到
杰克和“吉尔”不是回文。
一个人,一个计划,一条运河——巴拿马是一个回文。
等等
这是我的代码:
#include <fstream>
#include <string>
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
string input;
ifstream infile;
string keepgoing;
infile.open("palindromes.txt");
do {
infile >> input;
if (input == string(input.rbegin(), input.rend())) {
cout << input << " is a palindrome" << endl;
} else {
cout << input << " is not a palindrome" << endl;
}
cout << "Do you want to keep going? [Yes or No] ";
cin >> keepgoing;
} while (keepgoing == "Yes" || keepgoing == "yes");
}
解决方案
推荐阅读
- javascript - 为什么当第二个事件监听器被触发时第一个事件监听器停止工作?
- angular - 在 TypeScript 中通过 innerHTML 加载 Angular 组件
- javascript - Cordova 电子发布到 s3
- maxscale - 如何更改 GUI 的默认 MaxScale 凭据
- javascript - 如何从 Firestore 中检索特定范围的数据
- python - WinAppDriver,clickOnce 应用程序启动一个对话框 - 查找应用程序的问题
- c# - swagger REST API 补丁请求更改模型的一个字段
- python - 解决Python线性数学优化问题-向量-易约束
- reactjs - 调度 redux 事件时,我的 useEffect() 挂钩运行多次?
- react-native - 错误:看起来你已经在另一个里面嵌套了一个“NavigatorContainer”。(react-native)