PDA

Visualizza la versione completa : Inserimento a pettine!


ferdinando994
22-04-2014, 21:52
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

oregon
22-04-2014, 21:55
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

Cosa hai scritto? Errori? Idee?

ferdinando994
22-04-2014, 22:02
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!

oregon
22-04-2014, 22:05
Allora comincia ad impostare il programma in modo da inserire da tastiera le due frasi (o parole).

ferdinando994
22-04-2014, 22:14
#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";
}

MItaly
22-04-2014, 22:18
Il codice va specificato tra tag
... , 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.
:ciauz:

---edit---
Ah, il cross-posting con altri forum (http://www.iprogrammatori.it/forum-programmazione/cplusplus/inserimento-pettine-t20526.html#p8514945) non è esplicitamente vietato, ma non ci si fa troppo bella figura a tenere il piede in più scarpe in questo modo...

ferdinando994
22-04-2014, 22:20
Grazie mille, mi scuso!

minomic
23-04-2014, 12:15
Ciao,
ho corretto un po' il tuo codice e ho inserito una prima, parziale, implementazione della funzione "pettine".



#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.

:ciauz:

ferdinando994
23-04-2014, 12:43
Grazie millee!! :)

minomic
23-04-2014, 12:58
Prego, però mi raccomando: cerca di capire il funzionamento del codice e se hai dubbi facci sapere.

:ciauz:

Loading