Ho da fare un codice che, seguendo i vari punti, mi chiede di stampare tutti i caratteri condivisi in entrambe le stringhe, per quello che fa il programma è giusto, solo che è molto vago per quanto riguarda i caratteri duplicati e per insegnamento personale ho deciso che il programma avrebbe ignorato le doppioni.
Nonostante io abbia provato svariate opzioni e ci abbia pensato per giorni mentre lo lasciavo in pausa, non sono riuscito a risolvere il problema. Ho provato piazzando un altro if che "controlli" se ci siano duplicati e anche di copiare i valori della stringa "nome" in una seconda stringa per controllarle poi successivamente ma rincorro sempre in un errore comune dove la stampa della stringa contenente i caratteri comuni non viene più visualizzata. Ho pensato anche di mettere un char che controlli ogni singolo carattere della stringa condivisa ma non sono riuscito ad applicarla con successo, per mancata esperienza e eccessiva confusione sul risultato. Ho anche controllato vari codici ma pare che nessuno sia quello che cerco e/o abbiano operazioni più avanzate di quello che il mio codice pretenda.
Non voglio la pappa pronta perché ci tengo a imparare le cose a modo mio ma non riesco a venirne a capo
#include <iostream>
#include <string>
using namespace std;
int main(){
string nome;
string cognome;
string mys_1, mys_2, mys_somma;
int nome_l, cognome_l;
cout<<"Inserire Nome e Cognome: "<<endl;
cin>>nome>>cognome;
//Primo punto stampa singoli caratteri nome e cognome
nome_l = nome.length();
cognome_l = cognome.length();
mys_1 = nome.substr(0 , 1) + nome.substr(nome_l - 1);
cout<<"Primo e Ultimo carattere del nome: "<<mys_1<<endl;
mys_2 = cognome.substr(1, 2);
cout<<"Secondo e Terzo carattere del cognome: "<<mys_2<<endl;
//Secondo punto stringa caratteri presenti in ambe le stringhe
for(int i=0; i < nome_l; i++){
for(int j=0; j < cognome_l; j++)
if(cognome[j] == nome[i])
mys_somma+= nome[i];
}
cout<<mys_somma;
}