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

Czy napis 2 zawiera się w pierwszym.? (tablice)

Ostatnio zmodyfikowano 2013-01-20 23:25
Autor Wiadomość
black.exige
Temat założony przez niniejszego użytkownika
Czy napis 2 zawiera się w pierwszym.? (tablice)
» 2013-01-20 23:00:07
Witam, jestem tak jakby początkujący i mam problem. Trudzę się z programem w C, w ktorym chodzi o porownywanie napisów.. Czy 2 zawiera sie w pierwszym.. (wyrazy w tablicy). nie wchodza w grę zadne gotowe funkcje, trzeba od podstaw napisać uzywając prostych operatorów. ( tu rekurencję zrobiłem)

Gdyby podana była długość 2 wyrazu zrobiłbym to tak ..:
 
C/C++
int zawiera( const char napis[], const char szukany[] ) {
    int dalej;
   
    if( * napis == 0 ) {
        return 0;
    }
   
    if(( napis[ 0 ] == szukany[ 0 ] ) &&( napis[ 1 ] == szukany[ 1 ] ) ) {
        return 1;
    }
   
    dalej = zawiera( napis + 1, szukany );
    return dalej;
   
}
int main() {
    int wynik;
    char napis[] = "dfefedatrtree";
    char szukany[] = "da";
    wynik = zawiera( napis, szukany );
   
    printf( "= %d\n", wynik );
   
    system( "pause" );
    return 0;
}

Wpisane słowo " da" wykrywane jest w 1 napisie bez wględu co jest przed i po ..
Jednak nie mam pojęcia jak zrobić żeby identycznie działało , tyle ze dla nieskonczonej ilosci liter w słowie.. czyli zeby to się zapętlało.. nie mam pojęcia, trudze sie z tym i mi nie wychodzi.. Gdyby ktoś podsunął pomysł byłbym wdzieczny :)

ktoś polecił mi bym zrobił 2 petle , jedna biegnaca po 1 tablicy a druga po drugiej ,  zrobilem tak, ale nie wiem czemu znow nie dziala , dziekuje za ewenatualną pomoc w tym.


C/C++
for( i = 0; i < rozmiar; i++ )
     for( j = 0; j < rozmiars; j++ ) {
    if( napis[ i ] == szukany[ j ] ) {
        return 1;
       
    }
    else {
        return 0;
    }
}
P-74532
DejaVu
» 2013-01-20 23:25:46
Zaimplementuj jakiś znany algorytm wyszukiwania tekstu i problem będziesz miał z głowy.
P-74540
« 1 »
  Strona 1 z 1