Mam taki kod, który ma znaleźć najdłuższy ciąg liter.
ciag max( string s ) {
ciag ret;
ret.ile = 0;
ret.rodzaj = ciemne;
ciag tmp;
tmp.ile = 0;
tmp.rodzaj = ciemne;
for( siter i = s.begin(); i < s.end(); i++ ) { // siter to typedef string::iterator
if( type( *i ) == ret.rodzaj )
tmp.ile++;
else {
if( tmp.ile > ret.ile || ( tmp.ile == ret.ile && tmp.rodzaj < ret.rodzaj ) ) {
ret.ile = tmp.ile;
ret.rodzaj = tmp.rodzaj;
}
tmp.rodzaj = type( *i ); // type() to funkcja określająca typ litery ( samodzielnie działa poprawnie )
tmp.ile = 1;
}
}
return ret;
}
ciag to struktura zawierająca dane:
ile - ilość liter w szukanym ciągu
rodzaj - typ wyliczeniowy ( JASNE, CIEMNE, jasne, ciemne ).
Jasne to są samogłoski, a ciemne to spółgłoski. Wielkość liter ( JASNE, jasne ) oznacza wielkość liter w wyszukanej sekwencji.
Nie działa to jednak tak jak powinno. Jakieś propozycje?
Z góry dzięki.