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

    [C] Eliminare spazi da stringa di caratteri

    Ciao a tutti, vorrei richiedere in input una frase (max 256 caratteri) ed eliminare qualsiasi spazio in essa contenuta.
    Avevo pensato di creare un vettore di tipo char dove inserisco l'input e copiare quest'ultimo in un altro vettore eliminando gli spazi durante la copia...ma non riesco a fare il codice. Qualcuno può aiutarmi??


    Grazie

  2. #2
    è come hai detto tu...
    ti fai scorrere l array con un for e poi all interno con un if metti la condizione in cui se il carattere nell i esima posizione dell array è diverso dal carattere nullo,aggiungi quel carattere nella j+1esima posizione di un array vuoto (quindi il for deve avere due indici..di cui uno solo incrementato nel for stesso....for (i=0,j=0;i<tuaLunghezza ; i++).....il j si incrementa quando aggiungi il carattere,all interno del corpo dell if in base a quanto detto sopra...in alternativa visto che 256 posizioni sono molte puoi usare for (i=0,j=0;; i++) e metti la condizione di uscita ,sempre all interno del corpo del for, in un altro if....naturalmente la condizione è quella dell i esima posizione che corrisponde al carattere terminatore '\0'......come corpo di questo secondo if usi un break....).....

  3. #3
    Quote Originariamente inviata da rossonero922 Visualizza il messaggio
    è come hai detto tu...
    ti fai scorrere l array con un for e poi all interno con un if metti la condizione in cui se il carattere nell i esima posizione dell array è diverso dal carattere nullo,aggiungi quel carattere nella j+1esima posizione di un array vuoto (quindi il for deve avere due indici..di cui uno solo incrementato nel for stesso....for (i=0,j=0;i<tuaLunghezza ; i++).....il j si incrementa quando aggiungi il carattere,all interno del corpo dell if in base a quanto detto sopra...in alternativa visto che 256 posizioni sono molte puoi usare for (i=0,j=0;; i++) e metti la condizione di uscita ,sempre all interno del corpo del for, in un altro if....naturalmente la condizione è quella dell i esima posizione che corrisponde al carattere terminatore '\0'......come corpo di questo secondo if usi un break....).....
    Non è che gentilmente me lo potresti tradurre in codice direttamente?

    Grazie mille già per la risoluzione!

  4. #4
    ok...spero che i mod non si incazzino...XD
    codice:
    for (i=0,j=0; ; i++)
    {
    if (vettoreInput[i] != ' ')
    vettoreOutput[j++] = vettoreInput[i];
    if (vettoreInput[i] == '\0')
    break;
    }
    vettoreOutput è inizialmente vuoto,vettoreInput è quello in cui c è la frase

  5. #5
    Quote Originariamente inviata da rossonero922 Visualizza il messaggio
    ok...spero che i mod non si incazzino...XD
    codice:
    for (i=0,j=0; ; i++)
    {
    if (vettoreInput[i] != ' ')
    vettoreOutput[j++] = vettoreInput[i];
    if (vettoreInput[i] == '\0')
    break;
    }
    vettoreOutput è inizialmente vuoto,vettoreInput è quello in cui c è la frase
    Grazie ancora

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.