Wörter aus einem zweidimensionalem String mit einem String vergleichen



  • Hi, Anfänger hat folgendes Problem:
    Gibt's für das oben genannte eine einfache, elegante Lösung aus den standardslibs vllt. ?
    Sprich, wenn ich folgendes habe (bsp.) :

    char test[1000];
    char wort[][20] = {"wort1", "wort2", usw. };

    wortX soll im test string gesucht werden.
    Gibts das was vorgefertigtes ? mit strncmp klappts bei mir irgendwie nicht.

    grüsse



  • skilledmoron schrieb:

    Gibts das was vorgefertigtes ?

    nö, kannst du aber mit schleife einfach selbst programmieren.
    🙂



  • was klappt denn nicht ?
    nimm strcmp.

    char* pstr = "string x";
    for ( i=0; i<n; i++ )
    {
        if( strcmp(wort[i], pstr ) == 0 ) puts("gefunden");
    }
    


  • Danke für die Anworten.

    bonus schrieb:

    was klappt denn nicht ?
    nimm strcmp.

    char* pstr = "string x";
    for ( i=0; i<n; i++ )
    {
        if( strcmp(wort[i], pstr ) == 0 ) puts("gefunden");
    }
    

    Das mag ja klappen, aber es vergleicht ja nur einen einfachen string mit einem wort, und nicht ein, in einem 2 dimensionalen array befindliches wort mit einem beliebigen Teil eines Strings.

    Nach langer rumkritzeln habe ich sowas hier gemacht:

    while(length[count]) {
    
                 for(i2=0, i3=0; i3<10;)  {
    
                     if(length[count] == words[i3][i2] && length[count+1] == words[i3][i2+1] && \
                        length[count+2] == words[i3][i2+2] && length[count+3] == words[i3][i2+3]) {  
                        length[count] = 'X';
                        length[count+1] = 'X';
                        length[count+2] = 'X';
                        length[count+3] = 'X';
                        break;
                     }
                     i3++;
                 } 
             count++;
             }
    

    Da meine Wörter zum grössten Teil 4 Stellig sind, klappt das ganz gut.


Anmelden zum Antworten