• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

c++ ilość konkretnych słów w wierszu

Object Storage Arubacloud
+1 głos
262 wizyt
pytanie zadane 17 marca 2022 w C i C++ przez Wacław Sierpiński Początkujący (350 p.)

Witam. Mam plik tekstowy, z którego czytam go wiersz po wierszu. Chciałbym, aby program zliczył ile razy występuje konkretne słowo w jednym takim wierszu. Mam coś takiego, ale to nie działa, gdy w jednym wierszu znajduje się parę takich słów, ponieważ program zlicza tylko jedno z nich.

string szukane="dowolneslowo"


while (getline(dane, wiersz))
    {      
        size_t pozycja = wiersz.find(szukane);
        if (pozycja!=string::npos)
        liczbaslow++;
    }

Z góry pięknie dziękuję za pomoc.

1 odpowiedź

0 głosów
odpowiedź 18 marca 2022 przez VBService Ekspert (253,340 p.)
edycja 18 marca 2022 przez VBService

Dodaj drugi parametr do find(str, pos)

When pos is specified, the search only includes characters at or after position pos, ignoring any possible occurrences that include characters before pos.

 

Position of the first character in the string to be considered in the search. If this is greater than the string length, the function never finds matches.


Note: The first character is denoted by a value of 0 (not 1): A value of 0 means that the entire string is searched.

 

przykład  [ on-line ]

string szukane="dowolneslowo"

while (getline(dane, wiersz))
{      
        size_t nastepny = 0;
        while (true)
        {
            size_t pozycja = wiersz.find(szukane, nastepny);
            if (pozycja != string::npos)
            {
                liczbaslow++;
                nastepny = pozycja + 1;
            } else
                break;
        }
}

 

komentarz 18 marca 2022 przez j23 Mędrzec (194,920 p.)

Ten while(true) trochę średni... Można by tak:

size_t pozycja = 0;

while ((pozycja = wiersz.find(szukane, pozycja)) != string::npos) {
    ++liczbaslow;
    ++pozycja;
}

 

Podobne pytania

0 głosów
1 odpowiedź 1,246 wizyt
pytanie zadane 13 listopada 2017 w Systemy operacyjne, programy przez michal0246 Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 150 wizyt
pytanie zadane 5 września 2020 w Inne języki przez meleae Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 1,342 wizyt
pytanie zadane 22 listopada 2015 w C i C++ przez C☺ndzi Stary wyjadacz (12,100 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...