Salve a tutti, mi servirebbe una mano su un programma che non sono proprio riuscito a fare:
Effettuare l'inserimento a pettine
esempio:
ANDREA
CASA
!
ACNADSRAEA
Grazie in anticipo
Salve a tutti, mi servirebbe una mano su un programma che non sono proprio riuscito a fare:
Effettuare l'inserimento a pettine
esempio:
ANDREA
CASA
!
ACNADSRAEA
Grazie in anticipo
Purtroppo no, non so proprio come impostare il ragionamento, sono consapevole che dovrei almeno proporre qualche linea di codice, ma mi servirebbe un vostro consiglio!
Allora comincia ad impostare il programma in modo da inserire da tastiera le due frasi (o parole).
No MP tecnici (non rispondo nemmeno!), usa il forum.
codice:#include <iostream> #include <cstdlib> #include <cstring> using namespace std; const int MAX_ELEM=30; const int MAX_DIM=20; typedef char stringa[MAX_ELEM+1]; void lettura (stringa, stringa); void stampa (stringa, stringa); int main (){ stringa s1, s2; lettura (s1,s2); stampa (s1,s2); system ("pause"); } void lettura (stringa s1, stringa s2){ cout<<"Inserire la prima stringa: "; cin>>s1; cout<<"\nInserire la seconds frase: "; cin>>s2; } void stampa (stringa s1, stringa s2){ cout<<"\nLa prima stringa e': "<<s1; cout<<"\nLa seconda stringa e' :"<<s2 <<"\n"; }
Ultima modifica di MItaly; 22-04-2014 a 22:19 Motivo: Indentazione, tag CODE
- Il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione;
- il linguaggio di riferimento va sempre specificato (anche nel titolo, sotto forma di "tag");
Questa volta correggo io, in futuro ricordatene.
---edit---
Ah, il cross-posting con altri forum non è esplicitamente vietato, ma non ci si fa troppo bella figura a tenere il piede in più scarpe in questo modo...
Ultima modifica di MItaly; 22-04-2014 a 22:21
Amaro C++, il gusto pieno dell'undefined behavior.
Grazie mille, mi scuso!
Ciao,
ho corretto un po' il tuo codice e ho inserito una prima, parziale, implementazione della funzione "pettine".
codice:#include <iostream> #include <string.h> using namespace std; const int MAX_ELEM=30; const int MAX_DIM=20; void lettura (string *s1, string *s2); void stampa (string s1, string s2); string pettine (string s1, string s2); int main () { string s1, s2; lettura(&s1, &s2); stampa (s1,s2); string mix = pettine(s1, s2); cout<<"Mix: "<<mix<<endl; return 0; } void lettura(string *s1, string *s2) { cout<<"Inserire la prima stringa: "; cin>>*s1; cout<<"Inserire la seconda stringa: "; cin>>*s2; } void stampa (string s1, string s2) { cout<<"\nLa prima stringa e': "<<s1; cout<<"\nLa seconda stringa e': "<<s2 <<"\n"; } string pettine(string s1, string s2) { int l1 = s1.length(); int l2 = s2.length(); int lMin; string result; if(l1<=l2) lMin = l1; else lMin = l2; for(int i=0; i<lMin; i++) { result += s1[i]; result += s2[i]; } return result; }
Come vedi il mescolamento termina sulla lunghezza della stringa più corta. Da qui puoi provare a modificare il comportamento della funzione perché faccia quello che vuoi tu con i caratteri rimanenti della stringa più lunga.
Grazie millee!!
Prego, però mi raccomando: cerca di capire il funzionamento del codice e se hai dubbi facci sapere.