View Full Version : [C++] problemi vari con un codice per crittare/decrittare
oggi pomeriggio mi è tornato in mente il motivo per cui ho imparato il c++: scrivere un programma che critti/decritti le frasi.
infatti cercando su internet lessi qualcosa sul c++ e cosi iniziai a impararlo.
ora pero sto incontrando diverse difficolta e mi servirebbe il vostro aiuto.
al momento ho 'solo' due problemi:
1)come faccio a prendere i caratteri da un cin uno alla volta?
2)come faccio a modificare i caratteri di una stringa uno alla volta, modificarli e rimetterli al loro posto nella stringa?
grazie in anticipo :)
xplorer87
05-07-2006, 17:46
se ho ben capito quello che devi fare, ti conviene usare un array di char (che tecnicamente non e' molto diverso da una stringa, anzi): fai un ciclo e cosi' prendi da cin un carattere alla volta, idem quando devi modificarli.
grazie.
poi anziche fare il while faccio un for, giusto?
ah un'altra cosa: come faccio a prendere il cin e metterlo in questo array di caratteri?
Fenomeno85
05-07-2006, 23:08
se ti posso consigliare leggiti thinking in c++
~§~ Sempre E Solo Lei ~§~
lo sto leggendo ma non vado oltre la fine del capitolo 3 perche e complicato :D
mmmmmh... probabilmente allora prima ti servirebbe qualcosa tipo thinnking in c ;)
se capisci discretamente l'inglese è decisamente ben fatto
ciao!
l'inglese lo conosco abbastanza bene ma il C non mi piace :D
il mio problema è che non riesco a capire classi e strutture :(
trallallero
06-07-2006, 08:39
l'inglese lo conosco abbastanza bene ma il C non mi piace :D
il mio problema è che non riesco a capire classi e strutture :(
non ti preoccupare, classi e strutture non servono niente!
anzi io le leverei ... C e C++ sarebbero piú semplici cosí :D
non ti preoccupare, classi e strutture non servono niente!
anzi io le leverei ... C e C++ sarebbero piú semplici cosí :D
andiamo a braccetto :D
edit: non mi serve piu, faccio inserire una parola per volta :D
quando finisco (se ci riesco entro quest anno) posto il codice :D
trallallero
06-07-2006, 09:12
andiamo a braccetto :D
guarda che scherzavo eh ;)
ancora ancora il C senza strutture potrebbe andare (da matti cmq)
ma se levi le classi al C++ che ti rimane ???
cmq come posso spezzare un array di char contenente spazi in parole e salvare tutte queste parole in variabili diverse o in un vector?
ho pensato a memorizzare in un vector la posizione degli spazi e poi prendere tutte le lettere comprese tra uno spazio e un altro e inserirle in un altro vector.
il problema è che non so come prendere le lettere comprese tra gli spazi :(
il del C++ non conosco bene gli standard (vector, template etc)
per cose del genere utilizzo ancora il C e neanche le scanf, di cui non mi fido.
Se vuoi ti faccio una semplice funzioncina in C che fa quello che ti serve.
Se invece vuoi usare le classi standard del C++ aspetta qualcun altro ;)
guarda che scherzavo eh ;)
anchio :D
mi serve ancora aiuto..
qualcuno puo convertire questa
char* reverse (char *s)
{
int i, j, l;
char c;
for (i=0,l=strlen(s),j=l-1; i<l/2; c=s[i], s[i++]=s[j], s[j--]=c);
return s;
} funzione di andbin in void, che usi un puntatore per modificare le lettere, come questa? ->void critt(char *v)
{
char *p;
for(int i=0;i<strlen(v);i++)
{
p=&v[i];
switch(*p)
{
case'A':
case 'a':
*p='k';
break;
case'B':
case 'b':
*p='c';
//ecc...
se faccio par=reverse(par) dice che manca l' lvalue :(
ho fatto tutto ma appena inserisco la prima parola si blocca tutto..
questa è la parte incriminata
do{
cout << "Inserire una parola alla volta, exit per uscire: ";
cin >> par;
if(par[0]!='e'&&par[1]!='x'&&par[2]!='i'&&par[3]!='t')
{
critt(par);
reverse(par);
cout << par;
}
}
while(par[0]!='e'&&par[1]!='x'&&par[2]!='i'&&par[3]!='t');
e questa è la funzione reverse, quella che fa bloccare tutto:
void reverse (char *s)
{
int i, j, l;
char *c;
for (i=0,l=strlen(s),j=l-1; i<l/2;)
{
*c=s[i], s[i++]=s[j], s[j--]=*c;
}
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.