Se introduc de la tastatură două texte prin două variabile de tip string (#include <string.h>). Se cere să se afişeze cuvintele comune
celor două texte, ştiind că două cuvinte pot fi separate prin unul sau mai multe spaţii. Exemplu: pentru
textele: Ion merge la peste şi Dan merge la Ion, se va afişa : Ion merge la.Rezolvati in C sau C++
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <sstream>
#include <string>
int main()
{
std::string sir1, sir2, cuvant1, cuvant2;
std::istringstream flux1, flux2;
std::cout << "Șir 1: ";
std::getline(std::cin, sir1);
std::cout << "Șir 2: ";
std::getline(std::cin, sir2);
flux1.str(sir1);
while (getline(flux1, cuvant1, ' ')) {
if (cuvant1.empty()) {
continue;
}
flux2.str(sir2);
while (getline(flux2, cuvant2, ' ')) {
if (cuvant2.empty()) {
continue;
}
if (cuvant1 == cuvant2) {
std::cout << cuvant1 << std::endl;
}
}
flux2.clear();
}
}
Explicație:
Folosirea istringstream pentru tăierea în bucăți mi se pare mai curată și mai eficientă.
bash-5.1$ c++ -o cuvinte_comune cuvinte_comune.cpp
bash-5.1$ ./cuvinte_comune
Șir 1: Ion merge la peste
Șir 2: Dan merge la Ion
Ion
merge
la