在 C++ 的句子中查找某个单词
find a certain word in sentence in c++
我想编写一个程序来查找用户输入的单词我认为我的解决方案是正确的,但是当我运行它时,该程序在控制台中不显示任何内容任何人都可以修复它?
int main()
{
char sen[200],del[200],maybedel[200];
cout<<"enter sentence :"<<endl;
cin.getline(sen,200);
cout<<"which word do you want to delete ?";
cin.getline(del,200);
int len = strlen(sen);
for(int i=0;i<=len;i++)
{
if(sen[i]==' ')
{
for(int j=i;j<=len;j++)
if(sen[j]==' ' || sen[j]==' ')
for(int k=i+1,t=0;k<j;k++,t++)
maybedel[t]=sen[k];
if(maybedel==del)
cout<<maybedel;
}
}
return 0;
}
代码的第 12 行 if(sen[i]==' '( 阻止代码进入块,除非句子以 (' '( 开头!我稍微更改了代码,现在它可以正常工作。
char sen[200], del[200], maybedel[200];
cout << "enter sentence :" << endl;
cin.getline(sen, 200);
cout << "which word do you want to delete ?" << endl;
cin.getline(del, 200);
int len = strlen(sen);
int t = 0;
for(int i = 0; i <= len; i++) {
if(sen[i] == ' ' || sen[i] == ' ') {
maybedel[t] = ' ';
t = 0;
if(strcmp(del,maybedel)==0) {
cout << maybedel << endl;
}
}
else
{
maybedel[t] = sen[i];
t++;
}
}
没有输出的主要原因是
if (maybedel == del) // <<< this will *never* be true
cout << maybedel; // will never run
由于比较数组中的"字符串"需要std::strcmp(maybedel,del) == 0
的帮助会更好。
更新:
另一种攻击方法是避免原始循环并利用 STL 对您有利。下面是一个更强大的解决方案:
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <vector>
using namespace std;
int main() {
cout << "enter sentence :n";
string sen;
if (!getline(cin, sen)) throw std::runtime_error("Unable to read sentence");
cout << "which word do you want to delete ? ";
string del;
if (!(cin >> del)) throw std::runtime_error("Unable to read delete word");
istringstream stream_sen(sen);
vector<string> arrayofkeptwords;
remove_copy_if(istream_iterator<string>(stream_sen), istream_iterator<string>(),
back_inserter(arrayofkeptwords),
[&del](auto const &maybedel) { return maybedel == del; });
copy(begin(arrayofkeptwords), end(arrayofkeptwords),
ostream_iterator<string>(cout, " "));
cout << 'n';
}
相关文章:
- 在C++中查找(奇怪的)字符串中的单词
- 从文件中查找单词并替换到其他文件中
- 在文本中查找半个单词"ABBA"的问题
- C++:如何用split查找单词?Regex
- 查找包含指定单词的行(从文件中)
- 创建程序以从给定的.txt文件中查找文本,替换并计算单词
- 如何创建一个函数,该函数在文本中查找单词的匹配项,包括跳过
- 在带有C++的txt文件中查找最长的单词
- 从文件的一行中查找数字的平均值,避免使用第一个单词
- 在文件中查找 10 个最长的单词
- 如何使我的单词查找更清晰、更高效
- 视觉C++查找以 "ing" 结尾且少于或等于 10 个字符的单词
- 如何在没有分隔符的大文本文件中查找所有字典单词
- 我试图编写一个代码来查找一个单词是否是回文,但它不起作用。怎么了?
- 我如何在一串随机生成的字母I C 中查找一个单词
- 在 C++ 的句子中查找某个单词
- Qt使用QWebEngine查找单词功能
- 在向量中通过一个单词查找行
- 单词搜索难题:如何搜索一系列字母来查找单词
- C 查找并替换整个单词