Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68

    [C] Confrontare due stringhe e trovare i caratteri ricorrenti?

    Esiste una funzione che confronti 2 stringhe (quindi 2 array) e ne trovi i caratteri ricorrenti?
    Per esempio: se in un array ho la parola "Ciao" e nell'altra "Salve", la funzione dovrebbe dirmi per esempio che c'è una A in comune.

    Nel caso non esista dovrò crearla io...

  2. #2
    linguaggio ?

    Probabilmente dovrai fartela tu ... Niente di particolarmente difficile
    Experience is what you get when you don’t get what you want

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68
    Scusa, è per linguaggio C.

    Se devo crearmela io, avevo pensato a questo metodo: creare un ciclo che confronti la prima cella del primo array con tutte le celle del secondo, poi la seconda cella del primo array con tutte le celle del secondo e così via... E se trovo delle occorrenze, allora le stampo.

    Può essere buono come metodo?

  4. #4
    Ottimo, butta giù un po' di codice ...

    Prova a cambiare il titolo della discussione
    da
    Confrontare due stringhe e trovare i caratteri ricorrenti?
    in
    [c] Confrontare due stringhe e trovare i caratteri ricorrenti?
    se ti permette di farlo (dovresti modificare il tuo primo post).
    Experience is what you get when you don’t get what you want

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68
    Ok fatto

    Ora provo sul mio compilatore questo metodo e nel caso di problemi ti faccio sapere. Grazie mille!

  6. #6
    Prendi in considerazione che le stringhe potrebbero avere più caratteri uguali.
    Es: "pippo", "pluto"
    in questo caso, presumo, che la funzione dovrà stampare, una sola volta, che la 'p' è in comune.
    Experience is what you get when you don’t get what you want

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68
    Originariamente inviato da Xaratroom
    Prendi in considerazione che le stringhe potrebbero avere più caratteri uguali.
    Es: "pippo", "pluto"
    in questo caso, presumo, che la funzione dovrà stampare, una sola volta, che la 'p' è in comune.
    Ora però ho solo un problema: che operatore potrei usare per confrontare le stringhe?

  8. #8
    In c, le stringhe, si confrontano carattere per carattere, utilizzando l'operatore di confronto (ossia ==).

    Tuttavia il linguaggio mette a disposizione, nella libreria standard "string.h", alcune funzioni, come la strcmp, che consente di confrontare 2 stringhe ...
    Ma non c'è qualcosa che potrebbe risolvere il tuo problema.
    http://www.cplusplus.com/reference/clibrary/cstring/
    Experience is what you get when you don’t get what you want

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68
    Capito, allora farò così. Grazie ancora xD

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68
    Scusate per il flood.

    Ho provato a creare tale funzione, ma c'è qualcosa che non funziona. Temo di aver inserito troppi cicli, ma d'altronde volevo trovare un modo per far sì che per esempio il primo carattere della prima stringa si confronti con il primo carattere della seconda, poi il primo della prima con il secondo della seconda (scusate il gioco di parole), e così via.

    MAX_NUM_TENTATIVO vale 3, MAX_LETT_TENTATIVO vale 100.

    codice:
    void Controllo()
    {
        int conf = 0;
        int conf2 = 0;
        int g, t, conta;
        
        for(g = 0; g < numGiocatori; g++)
        {
            for(t = 0; t < MAX_NUM_TENTATIVO; t++)
            {
                while(conf < MAX_LETT_TENTATIVO)
                {
                    while(conf < MAX_LETT_TENTATIVO && conf2 < 7)
                    {
                        if(tentativi[g].tent[t].nTent[conf] == parolaMisteriosa[conf2])
                        {
                            conta++;
                            continue;
                        }
                    }    
                    if(conf == MAX_LETT_TENTATIVO)
                    {
                        conf2++;
                        continue;
                    }    
                    conf++;
                }
                printf("Nella parola misteriosa sono presenti: %d %c", conta, tentativi[g].tent[t].nTent[conf]);    
            }    
        }    
    }
    In precedenza avevo definito e dichiarato 2 strutture:
    codice:
    struct numTentativi {
        char nTent[MAX_LETT_TENTATIVO];
    };
    struct numTentativi tent[MAX_NUM_TENTATIVO];
    
    struct numGioc {
        struct numTentativi tent[MAX_NUM_TENTATIVO];
    };
    struct numGioc tentativi[MAX_G];

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.