2013-03-29 3 views
0

Я хочу создать программу, которая пройдет через предложение, и если она найдет символ или слово, оно отобразит его.C++ search for words string

Подумайте о программе, которая останавливается, как только она найдет первый символ/слово.

string test("This is sentense i would like to find ! "); //his is sentense to be searched 
    string look; // word/char that i want to search 

    cin >> look; 

    for (i = 0; i < test.size(); i++) //i<string size 
    { 
     unsigned searcher = test.find((look)); 
     if (searcher != string::npos) { 
      cout << "found at : " << searcher; 
     } 
    } 

ответ

1

Вам не нужен цикл. Вобще:

std::cin >> look; 
std::string::size_type pos = test.find(look); 
while (pos != std::string::npos) 
{ 
    // Found! 
    std::cout << "found at : " << pos << std::endl; 
    pos = test.find(look, pos + 1); 
} 

Вот live example показывает результат для входной строки "is".

+0

Да, но это не пройдет целое предложение. Например. если я попытаюсь найти символ «e», он найдет его только на 9-й позиции. –

+0

@ user2114862: О, так вы хотите найти все вхождения? –

+0

Да, поэтому он должен найти символ «e» 3 раза и отобразить позиции. –