Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Występowanie ciągu znaków w pliku

Ostatnio zmodyfikowano 2016-04-12 12:38
Autor Wiadomość
jaśkoo
Temat założony przez niniejszego użytkownika
Występowanie ciągu znaków w pliku
» 2016-04-11 13:24:55
Witajcie, muszę napisać program, który zliczy ilość wystąpień pewnego ciągu znaków w pliku. Znalazłem kilka artykułów o funkcji find, ale ona zwraca pozycję gdzie występuje znak, albo gdzie zaczyna się wyszukiwana sekwencja, ale czy istnieje jakaś funkcja zwracająca true/ false w zależności od tego czy dany ciąg wyrazów występuje w pliku albo coś podobnego?
P-147188
mateczek
» 2016-04-11 15:48:52
możesz śmiało założyć, że jeśli funkcja find zwróci pozycje znaku/ciągu to ten znak/ciąg występuje !!!
P-147189
jaśkoo
Temat założony przez niniejszego użytkownika
» 2016-04-12 09:22:16
Pomyślałem o tym, ale gdy wyraz nie występuje to zmienna, do której przekazywana jest pozycja przyjmuje jakieś losowe wartości. Poza tym pytanie dotyczyło tego czy istnieje taka funkcja jak napisałem wyżej.
P-147197
mateczek
» 2016-04-12 12:38:31
nie losowe tylko określoną string::nops bodajże "-1"

C/C++
#include <iostream>
#include<string>
using namespace std;

int main( int argc, char * argv[] )
{
    string caly { "ala al al la mal" };
    string frag { "al" };
    size_t poss = caly.find( frag );
    int licznik = 0;
    while( poss != string::npos ) {
        licznik++;
        poss = caly.find( frag, poss + frag.size() );
        // lub tak
        // poss=caly.find(frag,poss+1);
    }
    cout << licznik << endl;
   
   
   
}


funkcja zwracająca true/ false w zależności od tego czy dany ciąg wyrazów występuje[...]
Poza tym pytanie dotyczyło tego czy istnieje taka funkcja jak napisałem wyżej.



funkcja taka była by bez sensu i bezużyteczna!!! bo jeśli chciałbyś tylko informacje true/false. To za żadne skarby nie wykrył byś ile razy występuje w stringu dany fragment. tak na marginesie
ale masz jak chcesz !!!

C/C++
#include <iostream>
#include<string>
using namespace std;

int main( int argc, char * argv[] )
{
    string caly { "ala al al la mal" };
    bool wystepuje =( caly.find( "al" ) != string::npos ); // true występuje false nie
    cout << std::boolalpha << wystepuje << endl;
   
    wystepuje =( caly.find( "mama" ) != string::npos ); // true występuje false nie
    cout << wystepuje << endl;
}
P-147202
« 1 »
  Strona 1 z 1