處理將參數與文件中的文本進行比較的程序(我的文件是包含大量英語單詞的字典)。比較由單個字符的兩個字符串C++
現在應用程序只工作字符串完全匹配。
想知道是否有一種方法來比較輸入到文件中完整字符串的部分字符串,並將其匹配。 例如,如果參數是ap,它會匹配它到蘋果,應用程序聯盟分機。
# include <iostream>
# include <fstream>
# include <cstdlib>
# include <string>
using namespace std;
int main (int argc, char *argv[]) {
ifstream inFile;
inFile.open("/Users/mikelucci/Desktop/american-english-insane");
//Check for error
if (inFile.fail()) {
cerr << "Fail to Open File" << endl;
exit(1);
}
string word;
int count = 0;
//Use loop to read through file until the end
while (!inFile.eof()) {
inFile >> word;
if (word == argv[1]) {
count++;
}
}
cout << count << " words matched." << endl;
inFile.close();
return 0;
}
'ap'應該與'alliance'匹配嗎?然後只是比較第一個字符。否則,[這裏](http://stackoverflow.com/questions/1878001/how-do-i-check-if-ac-string-starts-with-a-certain-string-and-convert-a-sub)是你的副本。而這個'eof'的東西...不要這樣做,谷歌爲什麼/做什麼,而不是。 – LogicStuff
std :: string :: compare()或std :: regex - 不要在eof()上循環 - 請參閱https://latedev.wordpress.com/2012/12/04/all-about-eof/爲什麼 –
也許你正在通過像[lenshtein-distance](https://en.wikipedia.org/wiki/Levenshtein_distance)這樣的algorythm尋找相似之處? [Google有鏈接](http://www.google.com/search?q=levenshtein+distance+c%2B%2B) – LotPings