C++ funzione output

Pablo5
Salve
volevo sapere se esiste una funzione c++ che data una stringa
ne stampa a video solo una parte desiderata di questa


ad esempio ho la stringa memorizzata

char nome[20];


che contiene la parola : "Ciao come stai,io sto bene"

e voglio stampare solo il "come stai"

vi ringrazio.

Risposte
eafkuor1
usa un ciclo for e con cout stampa una lettera per volta
(ovviamente puoi creare una funzione a cui bisognerà passare la stringa e un parametro che ci dica fino a quale carattere stampare)

Pablo5
si è una soluzione possibile me vedi devo farle tantissime volte e ognunoa di queste prevede una piccola differenza con le altre quindi non potrei neanche creare una vera e propria funzione.

TheWiz@rd
Questa dovrebbe fare al caso tuo:

char *strncpy(char *dest, const char *src, size_t n);
[/code]

Pablo5
se non erro copia il contenuto di un vettore in un altro vettore.
con delle limitazioni che posso settare io,
è un metodo che avevo pensato anche io ma per fare quello che ho in mente devo cmq passare per 2 istruzioni, in più dovrei dichiarare un vettore in piu'.......

eafkuor1
se non ci descrivi più precisamente cosa devi fare non possiamo aiutarti. in cosa consistono le differenze tra una volta e l'altra?

Pablo5
nel senso che non posso creare una funzione e chiamare questa ogni volta perchè ogni volta che utilizzo tale procedimento nel corso del mio proogetto dovrei eseguire all'interno di essa altre chiamate a funzioni e a seconda del caso sono chiamate a funzioni tra loro diverse.
creare una nuova funzione non è possibile per il progetto che sto elaborando credetemi, sto cercando una funzione,se esiste, che stampi data una stringa solo una parte di essa

eafkuor1
"Pablo1986":
nel senso che non posso creare una funzione e chiamare questa ogni volta perchè ogni volta che utilizzo tale procedimento nel corso del mio proogetto dovrei eseguire all'interno di essa altre chiamate a funzioni e a seconda del caso sono chiamate a funzioni tra loro diverse.
creare una nuova funzione non è possibile per il progetto che sto elaborando credetemi, sto cercando una funzione,se esiste, che stampi data una stringa solo una parte di essa

si ma ci devi dire quali criteri devi seguire per scegliere la parte da stampare. le prime due parole? fino al punto?

Pablo5
il criterio dipende esclusivamente dal caso
mi spiego meglio


il mio progetto acquisisce una stringa da tastiera
con lunghezza variabile.
dato che quando voglio visualizzare le info da me inserite su schermo devo ottenere qualcosa del tipo

+-------------------------------+ (stringa costante)
| Nome prodotto: Casa | (in questo casa è ok)
+-------------------------------+



ma se invece che casa avessi
un nome molto più lungo la formattazione da me eseguita non avrebbe piu' senso perchè si verrebbe a creare una situazione del tipo


+--------------------------------+
| Nome: Stringa esageratamente lunga |
+--------------------------------+

che non è il mio intento
avevo pensato quindi di fare una cosa del tipo

+--------------------------------+
| Nome: Stringa esageratame|
| ente lunga |
+--------------------------------+


ma per fare cioò non so a priori cosa possa essere inserito da tastiera, devo quindi tagliare la stringa inserita in tante parti in modo da avere l'effetto sopra indicato.
Ora:siccome nel mio progetto ho scritto quasi 5000 righe sto cercando di scrivere il meno righe possibili.
Proprio poer questo mi servirebbe la funzione da me citata in questo topic.

Pablo5
scusate ma gli esempi da me fatti sopra non vengono visualizzati correttamente da questo forum

eafkuor1
i tre esempi dovrebbero essere questi:

 +-------------------------------+ (stringa costante)
 | Nome prodotto: Casa           | (in questo casa è ok)
 +-------------------------------+



+--------------------------------+
| Nome: Stringa esageratamente lunga |
+--------------------------------+
+--------------------------------+
| Nome: Stringa esageratame      |
|            ente lunga          |
+--------------------------------+


ti basta controllare se una stringa ha più di un certo numero di caratteri e in tal caso andare a capo e stampare:
1) |
2) la stringa
3) il numero di spazi rimanenti
4) |

eafkuor1
se vuoi andare a capo e mettere la stringa al centro la cosa non è difficile, basta fare

$s=(t-(c-2))/2$

dove $c=$caratteri della stringa ancora da stampare e $t=$lunghezza della stringa "+--------------------------------+"

e scrivere la stringa dopo $s$ spazi

Pablo5
alla fine sono stato costretto a dichairare una funzione, con le stesse caratteristiche date suggerite, cmq ti ringrazio.
La soluzione per centrare la riga è un ottima pensata
grazie mille

eafkuor1
di nulla :-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.