Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - eliminare gli spazi di una stringa
Forum - C/C++ - eliminare gli spazi di una stringa

Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 12:45
Sabato, 01/09/2012
il titolo dice tutto:

stringa di partenza: abc def...

ho provato così:

Codice sorgente - presumibilmente Plain Text

  1. for(i = 0, j = 0;
  2.           (fnp[i] != '\0');
  3.           i++, j++)
  4.       {
  5.          if(fnp[i] != ' ')
  6.             vettore_temporaneo[j] = fnp[i];
  7.          
  8.       }
  9.       printf("\nVET_TMP: %s\n",vettore_temporaneo);



Mi mette nel vettore temporaneo tutti i caratteri diversi da spazio, ma quando incontra uno spazio si ferma;
quindi alla fine mi stampa solo: abc
invece di stamparmi: abcdef...

cosa sbaglio ?


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
dmr (Normal User)
Pro


Messaggi: 141
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 13:09
Sabato, 01/09/2012
Sbagli a incrementare j. j non la devi incrementare nel for ma dentro il corpo dell'if.
Quindi:
Codice sorgente - presumibilmente Plain Text

  1. for(i = 0, j = 0;(fnp[i] != '\0');i++)
  2.  {
  3.    if(fnp[i] != ' ')
  4.    {
  5.      vettore_temporaneo[j] = fnp[i];
  6.      j++;
  7.    }
  8. }
  9. printf("%s\n",vettore_temporaneo);



Principali interessi: Compilatori e generatori di parser.
PM Quote
Avatar
arack95 (Member)
Pro


Messaggi: 144
Iscritto: 15/11/2010

Segnala al moderatore
Postato alle 13:21
Sabato, 01/09/2012
EDIT.
Non avevo visto la risposta precedente..

Ultima modifica effettuata da arack95 il 01/09/2012 alle 13:22


Take life less seriously!
PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 16:24
Sabato, 01/09/2012
tenchiuverimuc !!!
grazie mille
ahahahha


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
dmr (Normal User)
Pro


Messaggi: 141
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 16:32
Sabato, 01/09/2012
Figurati !!


Principali interessi: Compilatori e generatori di parser.
PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 19:48
Sabato, 01/09/2012
un ultima cosa: una volta eliminati gli spazi mi son detto <"Perchè non elimare anche le tabulazioni?">
Allora nell'if dove verificavo se c'era uno spazio lo modificato così:

Codice sorgente - presumibilmente Plain Text

  1. if((fnp[i] == ' ') || (fnp[i] == '\t'))



ma non mi funziona; mi lascia le tabulazioni

why ?


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
dmr (Normal User)
Pro


Messaggi: 141
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 21:15
Sabato, 01/09/2012
La condizione corretta dell'if è if((fnp != ' ') && (fnp != '\t')) perchè bisogna copiare solo i caratteri diversi da ' ' e dalla tabulazione.


Principali interessi: Compilatori e generatori di parser.
PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 0:07
Domenica, 02/09/2012
douch douch douch douch....
e ancora DOOOOOOOOUUUUUUUUUUCCCCCCCHHHHHHHHHHHHH !!!!!!!!!!!!!!

perchè mi sono dimenticato quello stupido " ! " ???

chiedo umilmente scusa per lo domanda sciocca  :(

quasi non merito di essere chiamato informatico/programmatore


La vita è un biscotto ma se piove si scioglie !!!
PM Quote