簡體   English   中英

在C ++中查找String中的子字符串

[英]Finding substring in String in C++

我正在從文本文件中讀取行以查找具有3個選項的狀態,可以是OUT或Discontinued或Cancelled

我這樣做:

ifstream inFile("DVD_list.txt");
string line;
char status;
while ( getline (inFile,line) ) {
    std::size_t pos = line.find("Out" || "Discontinued"|| "Cancelled");     
}

return 0;

如何使用find函數或表達式?

if((pos = line.find("Out")) != string::npos)
{
    // handle Out
}
else if((pos = line.find("Discontinued")) != string::npos)
{
    // handle Discontinued
}
else if((pos = line.find("Cancelled")) != string::npos)
{
    // handle Cancelled
}
else
{
    // not found
}

可能,您需要確保沒有檢測到誤報,例如“某些示例文本沒有輸出”!

std::istringstream is( "I hope it won't rain today" );

auto x = std::find( std::istream_iterator<std::string>( is ),
                std::istream_iterator<std::string>(),
            "rain" );

if ( x != std::istream_iterator<std::string>() ) std::cout << *x << std::endl;

這是一個示例代碼。

find()只能匹配一個字符串常量,你必須調用它三次。 但是您可以使用正則表達式來匹配這三個單詞並一次處理整行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM