PDA

View Full Version : aiuto c++


rastaivory
10-12-2003, 19:09
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

rastaivory
10-12-2003, 19:12
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, " ");

}

rastaivory
10-12-2003, 22:40
aiuto :mc:

Molz
11-12-2003, 09:28
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

rastaivory
11-12-2003, 19:22
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...

rastaivory
11-12-2003, 19:23
ah dimenticavo... grazie...:)

/\/\@®¢Ø
12-12-2003, 05:55
Originariamente inviato da rastaivory
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...
Una soluzione migliore allora e' usare una tabulazione per allineare ;)
Se invece vuoi una spaziatura differente, una soluzione piu' elegante potrebbe quella di impostare correttamente il canale di uscita, ad esempio:

#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];
}

In questo caso ho impostato la larghezza delle "colonne" a 10, e l'allineamento a destra (puoi pure settare il carattere di riempimento)

rastaivory
12-12-2003, 13:57
credo di non avere ancora la preparazione sufficiente per questo cmq farò un po' di prove...
grazie...

downloader
12-12-2003, 15:40
Originariamente inviato da rastaivory
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

ciao
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;)

downloader
12-12-2003, 15:42
Originariamente inviato da downloader
ciao
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;)
Ah, scusa... :doh: dopo aggiungi:

npratica[5] = 0;

Cià