C++ 使用子str在c++;
仔细看了一下网站,似乎找不到我要找的具体答案。我需要读入一个文本文件,其中包含几行不重要的文本。这被逐字存储在向量中。 我有另一个文本文件,其中有一个单词列表,我还将其存储到一个向量中 我要做的任务是浏览第一个文本文件,并用4个问号“?”替换第二个文件中的单词 出现的问题是,第一个文件中的一些单词包含标点符号,当我将这些单词与第二个文件中的单词进行比较时,由于这个标点符号,没有找到它 根据我的研究,使用子字符串似乎是消除标点符号问题的最佳选择 我以前没有在一起使用子字符串和向量的经验,我真的无法理解所需的代码。代码如下:C++ 使用子str在c++;,c++,visual-studio-2010,C++,Visual Studio 2010,仔细看了一下网站,似乎找不到我要找的具体答案。我需要读入一个文本文件,其中包含几行不重要的文本。这被逐字存储在向量中。 我有另一个文本文件,其中有一个单词列表,我还将其存储到一个向量中 我要做的任务是浏览第一个文本文件,并用4个问号“?”替换第二个文件中的单词 出现的问题是,第一个文件中的一些单词包含标点符号,当我将这些单词与第二个文件中的单词进行比较时,由于这个标点符号,没有找到它 根据我的研究,使用子字符串似乎是消除标点符号问题的最佳选择 我以前没有在一起使用子字符串和向量的经验,我真的无法
infile.open ( "textone.txt" );
infile2.open ( "listofwords.txt" );
vector <string> unfiltered;
vector <string> abbrevi;
ReadAbbreviations( infile , abbrevi );
string words;
while ( infile2 >> words)
{
int index;
unfiltered.push_back( words );
}
for ( int i = 0; i < abbrevi.size(); i++)
{
for (int j = 0; j < unfiltered.size(); j++)
{
if ( abbrevi[i] == unfiltered[j] )
{
unfiltered[j] = "????";
}
}
for ( int i = 0; i < unfiltered.size(); i++ )
{
cout << unfiltered[i] << ' ';
}
cout << endl;
infile.close();
infile2.close();
system ( "Pause" );
infle.open(“textone.txt”);
infile2.open(“listofwords.txt”);
向量未过滤;
向量abbrevi;
阅读缩略语(infle、abbrevi);
字符串;
while(填充2>>单词)
{
整数指数;
未过滤。推回(文字);
}
对于(int i=0;i 您是否考虑过将标点符号视为空白,在中读取文件时仅使用“空格”?这将消除逗号、句点等。警告:在审查算法中使用子字符串可能会很危险。请参阅:,以及“可能您可以在读取带有“坏字”的文件时丢弃标点符号”。我可以在读取文件时完全删除标点符号,但问题是当我将其输出到屏幕时,它会显示一个没有标点符号的文本文件,这真的没有任何意义。如果找到标点符号,有没有办法推回标点符号?最准确的方法是使用正则表达式替换和word bo星期五,但我不知道你们是否有可用的正则表达式库。