Torna indietro   Hardware Upgrade Forum > Software > Programmazione

FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7
FRITZ!Repeater 1700 porta il Wi-Fi 7 dual-band nelle case connesse. Mette a disposizione fino a 2.880 Mbit/s su 5 GHz e 688 Mbit/s su 2,4 GHz, integrazione Mesh immediata via WPS con FRITZ!Box e funzioni smart come MLO per bassa latenza. Compatto, plug-and-play e pronto per il futuro, è la soluzione ideale per chi vuole coprire ogni angolo senza cavi o complicazioni
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica
La Fondazione Chips-IT ha presentato a Pavia il piano strategico 2026-2028 per rafforzare l'ecosistema italiano dei semiconduttori. Con un focus su ricerca, design, talenti e infrastrutture, la Fondazione punta a consolidare il ruolo dell'Italia nel Chips Act europeo, sostenendo innovazione, collaborazione industriale e sovranità tecnologica.
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud
Al Museo Alfa Romeo di Arese, Nutanix ha riunito clienti, partner ed esperti per .Next On Tour Italia e per mostrare come l’infrastruttura hybrid multicloud possa diventare il fondamento dell’innovazione, con una piattaforma capace di unificare applicazioni tradizionali, moderne architetture cloud-native e nuovi scenari basati sull’intelligenza artificiale
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


FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica Fondazione Chips-IT, l'Italia alla riscossa nei ...
Nutanix: innovazione, semplicità e IA al centro della strategia hybrid multicloud Nutanix: innovazione, semplicità e IA al ...
Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il notebook gaming 'budget' che non ti aspetti Lenovo LOQ 15i Gen 10 (15IRX10) alla prova: il n...
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Il futuro dei chip è verticale: R...
Accenture e Anthropic insieme per aiutar...
Fino a 360 GB su un vetro grande come un...
tado° porta il bilanciamento idrauli...
Metallo liquido o solido? Entrambi, cont...
iPhone 17 Pro Max in offerta su Amazon: ...
A Taranto divieto di bici, e-bike e mono...
Scopa elettrica lava e aspira come una t...
SumUp continua a crescere ed espande l'o...
Volkswagen ID.Polo: da 25.000 euro, in q...
iPhone Fold: le ultime indiscrezioni sug...
Audi Revolut F1 Team: annunciati nome e ...
Resident Evil - Code Veronica Remake: l'...
Occhio ai prezzi dei robot ECOVACS Deebo...
IQM investe 40 milioni di euro per espan...
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: 23:20.


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