Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C] String compare tra i primi 15 caratteri

    Come faccio ad eseguire una stirng compare tra solo i primi 15 caratteri delle due stringhe?

    Praticamente io ho un errore di questo tipo:

    Duplicate entry '2006-11-20-23:08:00-Guido' for key 1

    Ora quello che sta dopo entry è variabile, quindi se facessi semplicemente una string compare non andrebbe. A me invece basterebbe accorgermi semplicemente del "Duplicate entry" e rimandare ad una determinata funziona di conseguenza.

    Voi cosa dite di fare? vorrei evitare di controllare carattere per carattere però non riesco a trovare la funzione adatta
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    Usa la funzione strncmp
    “Guardo in alto mentre cammino, così le lacrime non scenderanno...”
    Kyu Sakamoto

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Infatti: questa confronta i primi n caratteri di 2 stringhe.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    Originariamente inviato da XWolverineX
    Infatti: questa confronta i primi n caratteri di 2 stringhe.
    Ah mi ero dimenticato che la string compare comparava tot caratteri.

    Nel caso invece avessi una stringa del tipo:

    menuevent update test_dns 192.168.1.235 (con ip che potrebbe essere anche piu corto nel caso fosse ad esempio 1.1.1.1)

    Come potrei fare a ritagliare da questa stringa giusto l'ip? o magari come posso cancellare dalla stringa "menuevent update test_dns" in modo da far rimanere nella mia variabile solo l'ip?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    menuevent update test_dns

    Sono 25 caratteri.
    Dunque potresti fare...

    codice:
    //c è la tua stringa
    char *c2 = &c[26];
    c2 ora punta dal carattere n.26
    ATTENZIONE
    Questa è solo una supposizione e non è stata provata. Quindi non si garantisce la sua funzioinalità
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    Originariamente inviato da XWolverineX
    menuevent update test_dns

    Sono 25 caratteri.
    Dunque potresti fare...

    codice:
    //c è la tua stringa
    char *c2 = &c[26];
    c2 ora punta dal carattere n.26
    ATTENZIONE
    Questa è solo una supposizione e non è stata provata. Quindi non si garantisce la sua funzioinalità
    Funziona più che bene, ahh se fossi più ferrato sui puntatori mi eviterei tante di queste domande stupide
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Guarda che nemmeno io sono cosi ferrato e ti confesso di essere andato ad intuito.
    Ecco perchè ho scritto quel fatto, per non essere attaccato dai veterani!
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    Più "puntatoricamente corretto" infatti sarebbe
    codice:
    char * c2 = c + 26;
    ma sono ovviamente solo finezze .
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Si.
    Si utilizzia l'artimetica dei puntatori e si sposta l'offset (che sarebbe sizeof(char) = 1) di 26 posizioni.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

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.