Se citesc de la tastatura 3 siruri de caractere. Sa se elimine din al 3 lea sir caracterele care sunt comune in primele doua siruri
Răspunsuri la întrebare
#include <iostream>
#include <string.h>
using namespace std;
char s0[50];
char s1[50];
char s2[50];
// Am să fac un șir nou, sRez, pentru stocarea noului șir de caractere, care va fi construit fără caracterele comune.
char sRez[50];
int main() {
// Citim șirurile de caractere
cin.getline(s0, 50);
cin.getline(s1, 50);
cin.getline(s2, 50);
// Cu „iRez” am să țin minte la ce poziție am ajuns în sRez. Practic, va fi aproape mereu la sfârșitul stringului.
int iRez = 0;
// Trec prin toate caracterele lui s2...
for (int i = 0; i < strlen(s2); i++) {
char x = s2[i];
// Fac o variabilă comun. Dacă o setez la 1, va însemna că acel caracter este găsit și în s1, și în s2.
int comun = 0;
// „strchr” îmi returnează o adresă, sau NULL. Dacă îmi returnează NULL, înseamnă că al doilea parametru, de tip caracter, „x”, nu a fost găsit în șirul de caractere s0 (sau s1), adică primul parametru.
// Nu folosesc rezultatul direct, și „fac != NULL” deoarece vreau să compar două valori de tip boolean (adevărat sau fals).
if ((strchr(s0, x) != NULL) && (strchr(s1, x) != NULL)) comun = 1;
// Dacă caracterul nu este comun în s0 și s1, atunci îl adaugăm la șirul nostru sRez.
if (!comun) {
sRez[iRez] = x;
iRez++;
}
}
cout << sRez;
return 0;
}