我希望有人能指出我为这个计划指明正确的方向。主要问题是 searchstring 功能。该计划:
函数 searchString 有两个参数,即通过引用传入的文件对象和搜索字符串。
该函数一次读取一行并搜索搜索字符串的出现次数。每次找到搜索字符串时,它都会在输出中写出出现的行。此函数还返回搜索字符串出现的行数。
这是我的" info.txt" 文件。
你好,你叫什么名字?
我该如何帮助你?
欢迎来到他的域名!
修改
该计划现在有效。有谁知道如何搜索大写字母?
这是我到目前为止所做的:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int searchString(fstream &, string);
int main()
{
string filename;
string look;
fstream infile;
cout<<"Enter file: ";
cin>>filename;
infile.open(filename.c_str(), ios::in);
if(!infile)
{
cout<<filename<<" couldn't open."<<endl;
return 1;
}
cout<<"What do you want to search in the text file? ";
cin>>look;
cout<<"Beginning to search for "<<look<<endl;
cout<<look<<" was found in "<<searchString(infile, look)<<" lines."<<endl;
infile.close();
return 0;
}
int searchString(fstream &infile, string see)
{
string input;
int count=0;
int number=0;
while(getline(infile,input))
{
number++;
cout<<"Line "<<number<<": "<<input<<endl;
if(input.find(see,0)!=string::npos)
{
cout<<"found "<<see<<" in line "<<number<<endl;
count++;
}
else
{
cout<<see<<" is not found."<<endl;
}
}
return count;
}
答案 0 :(得分:0)
我猜您的问题是如何在字符串中找到子字符串,对吧?如果您的问题是如何阅读文件,请查看>Link<。
对于从文件中读取的每一行,您只需执行此操作:
String toFind = "example";
String needle = " " + toFind + " ";
if (s1.find(needle) != std::string::npos) {
count++;
cout << _line + ": Just found another line with the word" << endl;
}