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

Wyszukiwanie słowa w tekście

0 głosów
690 wizyt
pytanie zadane 1 maja 2019 w C i C++ przez Huberti Gaduła (4,500 p.)
edycja 1 maja 2019 przez Huberti

Witam, mam taki kod:

std::string fileContent;
// ... here is loading file to fileContent ...
std::size_t begin = fileContent.find("<tileset"); 
assert(begin != std::string::npos);
begin += std::strlen("<tileset");

Pytanie: Czy jest możliwość, aby find zamiast zwracać index pierwszego wystąpienia szukanego słowa, zwracał o jeden większy od końca szukanego słowa (tak, aby zlikwidować linijkę: begin += std::strlen("<tileset");).

Czyli w takim przypadku:

std::string fileContent = "<tilesetA";
std::size_t begin = fileContent.find("<tileset"); 
assert(begin != std::string::npos);

Zamiast zwracać index litery '<', zwróciłby index litery 'A'?

PS Albo przynajmniej index litery 't' (czyli ostatniej z poszukiwanego słowa).

komentarz 1 maja 2019 przez Patrycjerz Mędrzec (192,320 p.)
Ale dlaczego sposób ze zwiększaniem indeksu jest wg ciebie zły? Możesz zawsze obudować to w jakąś funkcję pomocniczą, którą będziesz dołączać do kodu w miarę potrzeby.
1
komentarz 1 maja 2019 przez j23 Mędrzec (195,220 p.)

@Huberti,  ten assert w tym kontekście to nie jest dobry pomysł.

komentarz 1 maja 2019 przez Patrycjerz Mędrzec (192,320 p.)
Racja, do błędów wykonania powinny być używane wyjątki. Asercje służą bardziej do sprawdzania pewników w etapie dewelopingu.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 485 wizyt
pytanie zadane 14 września 2022 w C i C++ przez RockySniper Nowicjusz (140 p.)
0 głosów
3 odpowiedzi 484 wizyt
pytanie zadane 19 marca 2016 w C i C++ przez gryzon Początkujący (480 p.)
0 głosów
1 odpowiedź 668 wizyt

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,328 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...