Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-11-2010, 18:08   #1
Negative_creep
Senior Member
 
L'Avatar di Negative_creep
 
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
Negative_creep è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2010, 18:49   #2
Supdario
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'
Non fa altro che trovare se l'ultimo carattere è uno spazio, e se lo è lo sostituisce con un terminatore di stringa.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2010, 20:25   #3
Negative_creep
Senior Member
 
L'Avatar di Negative_creep
 
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
Negative_creep è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2010, 22:05   #4
lefantome
Member
 
Iscritto dal: Dec 2007
Messaggi: 284
Quote:
Originariamente inviato da Supdario Guarda i messaggi
Se la stringa si trova sulla variabile "stringa":

Codice:
if (stringa[strlen(stringa)-1] == ' ') stringa[strlen(stringa)-1] = '\0'
Non fa altro che trovare se l'ultimo carattere è uno spazio, e se lo è lo sostituisce con un terminatore di stringa.
si ma così lasci un char inutilizzato in giro.

Dovresti crearti una nuova stringa di lunghezza-1 e copiarci l'altra senza lo spazio.
lefantome è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2010, 10:23   #5
Negative_creep
Senior Member
 
L'Avatar di Negative_creep
 
Iscritto dal: Jul 2005
Città: Milano
Messaggi: 1078
Quote:
Originariamente inviato da lefantome Guarda i messaggi
si ma così lasci un char inutilizzato in giro.

Dovresti crearti una nuova stringa di lunghezza-1 e copiarci l'altra senza lo spazio.
Si hai ragione lefantome, però assegno alla variabile "stringa" ad ogni ciclo, una riga del file in txt " stringa[strlen(stringa)-2] = '\0' " (-2 perchè altrimenti mi legge anche lo 0 di fine stringa con fgets) e poi quando avrò finito
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
Negative_creep è offline   Rispondi citando il messaggio o parte di esso
Old 17-11-2010, 15:05   #6
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Quote:
Originariamente inviato da lefantome Guarda i messaggi
si ma così lasci un char inutilizzato in giro.

Dovresti crearti una nuova stringa di lunghezza-1 e copiarci l'altra senza lo spazio.
Se proprio si vuole ridurre la stringa basta usare realloc, esempio:

Codice:
char *stringa = "Sono una stringa ";
int len = strlen(stringa)-1;
if (stringa[len] == ' ')
{
	stringa[len] = '\0';
	stringa = (char *) realloc(stringa, sizeof(char)*len);
}
Supdario è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Warhorse Studios colpita da un grave att...
MX Master 4, arriva l'edizione speciale ...
Kali Linux 2026.3 porta la caccia alle r...
Oracle si affida a OpenAI: ChatGPT e Cod...
Kaspersky punta su IA e servizi gestiti ...
Già sfruttata la falla Brotli che...
Potrebbe essere stato scoperto un nuovo ...
Claude Code, il prompt per scovare telec...
Palit e GALAX smentiscono le voci sulla ...
Fujifilm annuncia la Instax Mini Evo 2, ...
Tailscale chiude le falle SSH verso root...
Il tuo Galaxy laggava nei giochi? Samsun...
Arrivano i nuovi Amazon Echo: prezzi da ...
Il nuovo pickup elettrico Ford può alime...
Opera WebAI: così l'intelligenza artific...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v