|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 1179
|
aiuto c++
chi mi può aiutare?
ho un vettore stringa: char npratica[6]; se l'utente inserisce solo un carattere oppure due, come faccio a completare la stringa con degli spazi? ciao e grazie |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 1179
|
la mia idea era questa:
usare la strlen per contare i caratteri e assegnarla ad i, solo che strlen è un char e non un int, come faccio? int i =*******; for ( i<6 ; i++ ; ) { strcat (npratica, " "); } |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 1179
|
aiuto
![]() |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: May 2003
Messaggi: 119
|
Nn so a ke t serva aggiungere gli spazi.
Cmq la strlen ritorna 1 int e prende come parametro 1 char (la stringa di cui vuoi sapere la lunghezza). Il for ke hai scritto e' 1 zozzeria. Nel for va prima l'asseganmento, poi la condizione d uscita e infine l'incremento. Qindi t basta fare cosi' senza tante concatenazioni for (i=strlen(stringa);i<5;++i) stringa[i]=' '; stringa[5]='\0' Qesto perke' l'ultimo carattere d una stringa (ke per una stringa lunga 6 e' qello d indice 5) in C deve essere \0 il carattere ke indica la fine della stringa (la strcat lo inserisce automaticamente). Qesto carattere potresti metterlo dove t pare, in C la stampa della stringa nn fi ferma in base alla sua dimensione ma in base a dove e' il \0 |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 1179
|
mi serve per mantenere l'allineamento delle stringhe per il fout dopo una modifica, se no il fin non me lo riconosce...
scusate il linguaggio un po' sommario ma è solo da tre mesi che programmo... |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 1179
|
ah dimenticavo... grazie...
![]() |
![]() |
![]() |
![]() |
#7 | |
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
![]() Se invece vuoi una spaziatura differente, una soluzione piu' elegante potrebbe quella di impostare correttamente il canale di uscita, ad esempio: Codice:
#include <iostream> #include <iomanip> using namespace std; fout.setf( ios_base::left ); fout.width( 10 ); for( int i=0;i < 5 ; ++i ) { fout << array[i]; } |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 1179
|
credo di non avere ancora la preparazione sufficiente per questo cmq farò un po' di prove...
grazie... |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Nov 2003
Città: Napoli
Messaggi: 6193
|
Re: aiuto c++
Quote:
posso suggerirti la soluzione + semplice: strncat(npratica, " ", 5 - strlen(npratica)); Chiaramente dopo una fget o cin o qualsiasi funzione di input da parte di un utente. In ogni caso solo se smanetti impari. Ciao ![]()
__________________
Diablo3 PF | MyPC(liquidato) - Case Corsair Obsidian 800D / PSU Enermax Galaxy 1000W / MB GA-EX58A-UD7 / CPU Intel I7 920 D0@4.1ghz / MEM Corsair Dom. GT@1680mhz / GPU R9 290X / HD 2xWD 150GB raid 0/ SO - Windows 7 Ult. |
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Nov 2003
Città: Napoli
Messaggi: 6193
|
Re: Re: aiuto c++
Quote:
![]() npratica[5] = 0; Cià
__________________
Diablo3 PF | MyPC(liquidato) - Case Corsair Obsidian 800D / PSU Enermax Galaxy 1000W / MB GA-EX58A-UD7 / CPU Intel I7 920 D0@4.1ghz / MEM Corsair Dom. GT@1680mhz / GPU R9 290X / HD 2xWD 150GB raid 0/ SO - Windows 7 Ult. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:57.