C++ 使用子str在c++;

C++ 使用子str在c++;,c++,visual-studio-2010,C++,Visual Studio 2010,仔细看了一下网站,似乎找不到我要找的具体答案。我需要读入一个文本文件,其中包含几行不重要的文本。这被逐字存储在向量中。 我有另一个文本文件,其中有一个单词列表,我还将其存储到一个向量中 我要做的任务是浏览第一个文本文件,并用4个问号“?”替换第二个文件中的单词 出现的问题是,第一个文件中的一些单词包含标点符号,当我将这些单词与第二个文件中的单词进行比较时,由于这个标点符号,没有找到它 根据我的研究,使用子字符串似乎是消除标点符号问题的最佳选择 我以前没有在一起使用子字符串和向量的经验,我真的无法

仔细看了一下网站,似乎找不到我要找的具体答案。我需要读入一个文本文件,其中包含几行不重要的文本。这被逐字存储在向量中。 我有另一个文本文件,其中有一个单词列表,我还将其存储到一个向量中

我要做的任务是浏览第一个文本文件,并用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星期五,但我不知道你们是否有可用的正则表达式库。