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

Transformati programul dat din C++ in C

Conditia:

Se introduc de la tastatură două texte prin două variabile de tip string. 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.

Programul:

#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();
}
}​

Răspunsuri la întrebare

Răspuns de Rayzen
1

Pentru a converti acest cod din C++ în C, va trebui să faceți câteva modificări. În C, anteturile <iostream> și <sstream> nu sunt disponibile, așa că va trebui să utilizați anteturile <stdio.h> și <string.h>. În plus, va trebui să înlocuiți tipul std::string cu tipul char* și să utilizați funcțiile strcpy și strcmp pentru a copia șiruri și, respectiv, a le compara.

Iată un exemplu despre cum ar putea arăta codul după ce a fost convertit în C:

#include <stdio.h>

#include <string.h>

int main()

{

char sir1[100], sir2[100], cuvant1[100], cuvant2[100];

printf("Șir 1: ");

fgets(sir1, sizeof(sir1), stdin);

printf("Șir 2: ");

fgets(sir2, sizeof(sir2), stdin);

char* flux1 = sir1;

while (sscanf(flux1, "%s", cuvant1) == 1) {

if (strcmp(cuvant1, "") == 0) {

continue;

}

char* flux2 = sir2;

while (sscanf(flux2, "%s", cuvant2) == 1) {

if (strcmp(cuvant2, "") == 0) {

continue;

}

if (strcmp(cuvant1, cuvant2) == 0) {

printf("%s\n", cuvant1);

}

}

}

}


Eqwyolent: Introduc primul sir de caractere,dau enter,si imi cere sa mai introduc ceva,insa nu imi scrie ce anume... ce trebuie sa introduc? nici din programul din c++ nu am inteles aceasta
Alte întrebări interesante