Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    20

    Ricerca in stringhe [C++]

    Ciao ragazzi. in un mio programma mi ritrovo a dover fare un confronto tra stringhe in una funzione. Mi spiego:
    ho implementato un dizionario, e passo ad una funzione :
    - il dizionario (per riferimento)
    - la parola W da cercare (per riferimento)

    L'obbiettivo è:
    - trovare tutte le parole nel dizionario che cominciano con la parola W.

    Facciamo un semplice esempio: Il mio dizionario contiene le seguenti parole:
    alessio alessandro alice tazza teresa tetto zio

    Passo alla funzione. Inserisco W, per esempio: te
    La mia funzione deve restituirmi (con un cout o un return, quello me lo vedo io) le due parole che iniziano per "te", ossia: teresa, tetto.

    Come posso fare questo confronto tra stringhe? premetto che ho già una funzione che consente di inserire nel programma solo lettere minuscole.
    Spero possiate aiutarmi con qualcosa di non troppo difficile

    Ciao grazie!

  2. #2
    Se utilizzi le stringhe in stile c, puoi usare la funzione di libreria strncmp(), per le stringhe del C++ esiste il metodo .substr().
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    20
    Nono non uso cstringhe ma string c++.
    mi spiegheresti meglio come fare? Grazie

  4. #4
    Confronti W (che è la tua parola da cercare giusto ?) con ogni parola presente nel tuo dizionario

    codice:
    for(int i;.... )
    if( parola[i].substr( 0, W.count() )  == W )
        // la parola corrente ha la parte iniziale uguale a W
    Attento con i limiti delle stringhe
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  5. #5
    Dovendo implementare una cosa del genere in maniera efficiente terrei il dizionario ordinato, e quindi farei una ricerca dicotomica cercando il solo prefisso. Se la parola a cui arrivi non inizia con il prefisso allora non esistono parole con il prefisso richiesto, se no stampo le parole da lì in poi finché iniziano con il prefisso.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.