Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Eliminare spazi bianchi - c++
Forum - C/C++ - Eliminare spazi bianchi - c++

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Riki94 (Normal User)
Pro


Messaggi: 93
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 19:29
Martedì, 16/11/2010
Scusate la domanda banale, ma non ne riesco a venire a capo...
se prelevo una stringa, ad esempio "ciao ciao", che sia essa da un file o da input diretto dell'utente, come faccio a eliminare lo spazio?? in modo che diventi "ciaociao"... :-?:-?:-?

PM
Avatar
Numa Pompilio (Ex-Member)
Pro


Messaggi: 66
Iscritto: 03/05/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 19:55
Martedì, 16/11/2010
Testo quotato

Postato originariamente da Riki94:

Scusate la domanda banale, ma non ne riesco a venire a capo...
se prelevo una stringa, ad esempio "ciao ciao", che sia essa da un file o da input diretto dell'utente, come faccio a eliminare lo spazio?? in modo che diventi "ciaociao"... :-?:-?:-?



ti crei un'altra "stringa" d'appoggio e fai la copia di tutti quei caratteri che siano diversi da ' ' (cioè il carattere spazio). E' un semplice ciclo for con if all'interno.
Naturalmente alla fine ritorni la stringa d'appoggio

PM
Avatar
Riki94 (Normal User)
Pro


Messaggi: 93
Iscritto: 30/07/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 13:36
Mercoledì, 17/11/2010
ho scritto questo codice... ma non funziona.. probabilmente sono un po tonto... :asd:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <string>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     string stringa;
  9.     string stringa2;
  10.     int i;
  11.     cin >> stringa;
  12.     for(i=0;i<stringa.length();i++)
  13.     {
  14.         if(stringa[i]!= " ")
  15.         {
  16.              stringa2[i]= stringa[i];
  17.         }
  18.     }
  19.     cout << stringa2;
  20.     system("PAUSE");
  21. }


PM
Avatar
Numa Pompilio (Ex-Member)
Pro


Messaggi: 66
Iscritto: 03/05/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 14:54
Mercoledì, 17/11/2010
Testo quotato

Postato originariamente da Riki94:

ho scritto questo codice... ma non funziona.. probabilmente sono un po tonto... :asd:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <string>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     string stringa;
  9.     string stringa2;
  10.     int i;
  11.     cin >> stringa;
  12.     for(i=0;i<stringa.length();i++)
  13.     {
  14.         if(stringa[i]!= " ")
  15.         {
  16.              stringa2[i]= stringa[i];
  17.         }
  18.     }
  19.     cout << stringa2;
  20.     system("PAUSE");
  21. }




devi usare 2 indici diversi per le 2 stringhe. Quello di stringa lo incrementi ad ogni ciclo for, quello di stringa2 solo quando entri nell'if.....capito? e poi, se non ricordo male, per indicare un char si usano i singoli apici (' ') e non quello doppi (" ").
Prova e facci sapere.
ps. la prossima volta posta anche cosa ti sputa fuori il compilatore ;)

PM
Avatar
Riki94 (Normal User)
Pro


Messaggi: 93
Iscritto: 30/07/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 15:03
Mercoledì, 17/11/2010
ho  messo 2 indici... ma non funziona...
errore del compilatore:  ISO C++ forbids comparison between pointer and integer
:-?:-?:-?
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <string>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     string stringa;
  9.     string stringa2;
  10.     int i;
  11.     int j=0;
  12.     cin >> stringa;
  13.     for(i=0;i<stringa.length();i++)
  14.     {
  15.         if(stringa[i]!= " ")
  16.         {
  17.              stringa2[j]= stringa[i];
  18.              j = i;
  19.         }
  20.     }
  21.     cout << stringa2;
  22.     system("PAUSE");
  23. }


PM
Avatar
Numa Pompilio (Ex-Member)
Pro


Messaggi: 66
Iscritto: 03/05/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 15:15
Mercoledì, 17/11/2010
Testo quotato

Postato originariamente da Riki94:

ho  messo 2 indici... ma non funziona...
errore del compilatore:  ISO C++ forbids comparison between pointer and integer
:-?:-?:-?
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <string>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     string stringa;
  9.     string stringa2;
  10.     int i;
  11.     int j=0;
  12.     cin >> stringa;
  13.     for(i=0;i<stringa.length();i++)
  14.     {
  15.         if(stringa[i]!= " ")
  16.         {
  17.              stringa2[j]= stringa[i];
  18.              j = i;
  19.         }
  20.     }
  21.     cout << stringa2;
  22.     system("PAUSE");
  23. }




togli quel j=i e mettici ++j;

PM
Avatar
Riki94 (Normal User)
Pro


Messaggi: 93
Iscritto: 30/07/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 15:28
Mercoledì, 17/11/2010
ho cambiato i=j con ++j;

ma non funziona... l'errore è nel  

if(stringa!= " ")

errore:  ISO C++ forbids comparison between pointer and integer

PM
Avatar
Numa Pompilio (Ex-Member)
Pro


Messaggi: 66
Iscritto: 03/05/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 15:48
Mercoledì, 17/11/2010
Testo quotato

Postato originariamente da Riki94:

ho cambiato i=j con ++j;

ma non funziona... l'errore è nel  

if(stringa!= " ")

errore:  ISO C++ forbids comparison between pointer and integer  



Non sono un esperto di C++...........però prova a togliere i doppi apici e mettici quelli singoli

PM
Avatar
Riki94 (Normal User)
Pro


Messaggi: 93
Iscritto: 30/07/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 15:53
Mercoledì, 17/11/2010
mettendo ' ' al posto di " " compila il programma... però se inserisco ciao ciao non mi da l'output.... :(

PM
Pagine: [ 1 2 ] Precedente | Prossimo