Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280

    [C] Trovare in una stringa

    Ciao a tutti, volevo sapere se in c è possibile sapere quale di alcuni caratteri viene per prima, ad esempio

    char array[10] = "ciao>cucu<bla";

    se io volessi sapere quali dei caratteri ">" , "<" viene prima come posso fare?
    in questo caso la risposta è ">".
    naturalemnte vorrei una soluzione + elegante di un ciclo for che va dall'inizio dell'array fino alla fine e fa il confronto di ogni carattere...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Puoi usare la funzione strstr(...)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280
    ma strstr nn mi dice quale dei due caratteri è presente per primo... maritorna il puntatore all'occorrenza... forse potrei fare uno strlen? per vedere quale è + lungo oppure c'è un altro modo?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C] Trovare in una stringa

    Originariamente inviato da magicofred
    Ciao a tutti, volevo sapere se in c è possibile sapere quale di alcuni caratteri viene per prima, ad esempio

    char array[10] = "ciao>cucu<bla";

    se io volessi sapere quali dei caratteri ">" , "<" viene prima come posso fare?
    in questo caso la risposta è ">".
    naturalemnte vorrei una soluzione + elegante di un ciclo for che va dall'inizio dell'array fino alla fine e fa il confronto di ogni carattere...
    codice:
    #include <stdio.h>
    #include <string.h>
    
    char find_first_char (char *str, char *chrset)
    {
        size_t len;
    
        len = strcspn (str, chrset);
        return str[len];
    }
    
    int main (void)
    {
        char c;
    
        c = find_first_char ("ciao>cucu<bla", "><");
        if (c != '\0')
            printf ("Trovato carattere %c\n", c);   /* stampa > */
    
        c = find_first_char ("hello <ciao>", "><");
        if (c != '\0')
            printf ("Trovato carattere %c\n", c);   /* stampa < */
    
        return 0;
    }
    Più elegante di questa .... non saprei.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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.