Informatică, întrebare adresată de Eqwyolent, 8 ani în urmă

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 de VxF
1

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


Eqwyolent: Salut,daca il mai faci si in C iti dau coroana,in orice caz te rog foarte mult
Eqwyolent: Dar eu nu prea am inteles logica,introduc primul sir si apoi imi dea inca ceva sa introduc insa nu imi afiseaza ce anume si numai apoi imi dea sa introduc al doilea sir si iarasi nu imi afiseaza ce sa introduc,daca eu introduc doar sirurile imi scrie "dash: 3: Dan:Not found"
VxF: Oops. Scuze, ieri mi-a scăpat cumva comentariul tău. Rulezi cumva programul din ceva IDE/mediu de dezvoltare/debuguire? Eu îl rulez din linie de comandă și n-am probleme:

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
Alte întrebări interesante