Informatică, întrebare adresată de dragalinayuc, 9 ani în urmă

Elaborati un program care citește de la tastatura doua șiruri de caractere si afișează pe ecran
a)caracterele care se întâlnesc cel puțin in unul dintre șiruri
b)caracterele care apar in ambele șiruri
c)caracterele care apar in primul si nu apar in șirul al doilea


express: Nu ai specificat daca aceste caractere apar o singura data...e destul de complicata...se poate face cu vectori de frecventa...deocamdata ai pct b) si c)...fara a)
dragalinayuc: Mulțumesc dar a cum s-ar rezolva?

Răspunsuri la întrebare

Răspuns de express
0
Ti-am facut o sursa simpla in C++ care rezolva punctul b)...
#include <iostream>
#include <cstring>
using namespace std;
char s[255], t[255];
int i;
int main()
{
cin.getline(s, sizeof(s));
cin.getline(t, sizeof(t));
for (i = 0; i < strlen(s); i++)
if (strchr(t, s[i])) cout << s[i];
    return 0;
}
 punctul c)
#include <iostream>
#include <cstring>
using namespace std;
char s[255], t[255];
int i;
int main()
{
cin.getline(s, sizeof(s));
cin.getline(t, sizeof(t));
for (i = 0; i < strlen(s); i++)
if (!(strchr(t, s[i]))) cout << s[i];
    return 0;
}


dragalinayuc: Multumesc , dar punctul a și b cum s-ar rezolva
express: b si c...merg...a se face cu vectori de frecventa...nu e formulata prea clar...daca e vector de frecventa atunci aceste caractere ar trebui sa apara o singura data. Profesorul care ti-a formulat aceasta problema trebuia sa fie mai clar.
dragalinayuc: e din manual
express: care manual?
dragalinayuc: De informatică
dragalinayuc: te rog poti sa ma ajuti si la punctul a ?
Răspuns de Emil1234
0
Pentru ca punctul b si c au fost rezolvate mai jos, iti voi pune doar rezolvarea de la a:

#include <iostream>

#include <cstring>

using namespace std;

int* v[300];

void check (char* sir,int* v[300]){

    for(int i=0;i<strlen(sir);i++)

        v[int(sir[i])]++;

}


int main()

{

    char s[255],t[255];

    cin.getline(s,255);

    cin.getline(t,255);

    check(s,v);

    check(t,v);

    for(int i=0;i<255;i++)

        if(v[i])

            cout<<(char)i;

}

Succes!

Alte întrebări interesante