Eliminare l'ultimo carattere di una stringa

di il
7 risposte

Eliminare l'ultimo carattere di una stringa

Ciao a tutti!

Ho un problema che non riesco a risolvere e che spero riusciate ad aiutarmi a risolvere:

Dato un indirizzo email ( es. ) devo controllare se al fondo della stringa c'è un punto ( es. . ) e se c'è devo eliminarlo dalla stringa.

Per ora sono riuscita a individuare se c'è o meno il punto con la funzione ispunct() ma non so come togliere il punto dalla stringa.

Grazie in anticipo per le vostre risposte.

7 Risposte

  • Re: Eliminare l'ultimo carattere di una stringa

    Potresti copiare la stringa in un vettore di caratteri (con un ciclo for) copiando le lettere solo se sono diverse dal punto (con un if)
  • Re: Eliminare l'ultimo carattere di una stringa

    Eh ma io voglio tenere i punti che ci sono nel mezzo della mail. Devo togliere solo l'ultimo se c'è. Ho fatto un for e la mia idea era di copiare ogni lettera della mail in un nuovo vettore di caratteri e dato che il ciclo si ferma alla lunghezza della mail-1 allora non memorizza il punto nel nuovo vettore di caratteri. Ma non funziona.
  • Re: Eliminare l'ultimo carattere di una stringa

    Ah scusa, non avevo letto con attenzione, perchè non funziona?, posta il codice
  • Re: Eliminare l'ultimo carattere di una stringa

    m=strlen(email);
    if(ispunct(email[m-1]))
    {
    for(k=0; k<m-1; k++)
    {
    senzapunto[k]=email[k];
    //printf("%s\n", senzapunto);
    }
    printf("L'email senza il punto finale e': %s \n", senzapunto);

    }
    Per la prima mail che trova con il punto funziona, per la seconda mail che trova se è più corta della prima gli attacca in coda le lettere finali della prima dato che gli sono rimaste in memoria in senzapunto.
    es. . .
    esce:
    L'email senza il punto finale e':
    L'email senza il punto finale e':
  • Re: Eliminare l'ultimo carattere di una stringa

    Prova così
    
    int m = strlen(email);
    if(email[m-1] == '.')
       email[m-1] = '\0';
    
    Non c'è bisogno di copiare in un altra stringa, semplicemente tronchi la prima.
  • Re: Eliminare l'ultimo carattere di una stringa

    Perfetto..funziona benissimo!
    Grazie mille
  • Re: Eliminare l'ultimo carattere di una stringa

    Figurati
Devi accedere o registrarti per scrivere nel forum
7 risposte