|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
|
[C] Eliminare ultimo spazio vuoto di una stringa
Ciao a tutti, vorrei sapere come è possibile eliminare l'ultimo spazio vuoto " " di una stringa che contiene all'interno diversi valori separati a loro volta da spazio vuoto.
Es. "a b c d e f g " presa da file txt con il comando fgets(stringa,500,f); ho bisogno che la stringa sia "a b c d e f g" senza spazio vuoto alla fine. Come posso fare? Ho provato con questa istruzione lungh=strlen(stringa); stringa2 = strncpy(riga,stringa,lungh-2); // perchè così non conto " " e EOF ma la cosa mi funziona solo in parte, nel senso che per alcune righe del file è tutto ok, per altre invece (3 righe su 8) c'è uno 0 che viene appiccicato alla fine del secondo ciclo e mi sballa alcuni risultati.
__________________
CPU: AMD Phenom II X4 965 C3 Motherboard: Asrock 980DE3/U3S3 R2.0 Ram: G-Skill F3 CL7 4GB DDR3 1333Mhz Alimentatore: Corsair VX550w Hard-Disk: Samsung SSD EVO 860 500GB - WD Caviar Black 1 TB |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Mar 2008
Messaggi: 267
|
Se la stringa si trova sulla variabile "stringa":
Codice:
if (stringa[strlen(stringa)-1] == ' ') stringa[strlen(stringa)-1] = '\0' |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
|
Grazie davvero per l'aiuto Supdario, non ne uscivo più
__________________
CPU: AMD Phenom II X4 965 C3 Motherboard: Asrock 980DE3/U3S3 R2.0 Ram: G-Skill F3 CL7 4GB DDR3 1333Mhz Alimentatore: Corsair VX550w Hard-Disk: Samsung SSD EVO 860 500GB - WD Caviar Black 1 TB |
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Dec 2007
Messaggi: 284
|
Quote:
Dovresti crearti una nuova stringa di lunghezza-1 e copiarci l'altra senza lo spazio. |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
|
Quote:
farò la free(stringa) non è proprio elegante come cosa ma è meglio che allocare una nuova variabile e copiarci ad ogni ciclo una stringa castrata. Spero che comunque non mi dia problemi su file con tante righe.
__________________
CPU: AMD Phenom II X4 965 C3 Motherboard: Asrock 980DE3/U3S3 R2.0 Ram: G-Skill F3 CL7 4GB DDR3 1333Mhz Alimentatore: Corsair VX550w Hard-Disk: Samsung SSD EVO 860 500GB - WD Caviar Black 1 TB |
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Mar 2008
Messaggi: 267
|
Quote:
Codice:
char *stringa = "Sono una stringa ";
int len = strlen(stringa)-1;
if (stringa[len] == ' ')
{
stringa[len] = '\0';
stringa = (char *) realloc(stringa, sizeof(char)*len);
}
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:00.




















