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

Va rooooooog in c++ cu functi recursive
se citeste un sir de cuvinte pana la citire carcterului "*" . Sa se afiseze cuvintele in ordine inversa citirii lor

Răspunsuri la întrebare

Răspuns de andrei750238
2

#include <iostream>

#include <cstring>

using namespace std;

void afisare(char *p){

   char cuv[100];

   strcpy(cuv,p);

   p=strtok(NULL, " ");

   if(p)afisare(p);

   cout << cuv << " ";

}

int main(){

   char s[100];

   cin.get(s,100,'*');

   char *p=strtok(s, " ");

   afisare(p);

}

Te rog nu mai face spam cu intrebari. Pune o singura intrebare si asteapta pana raspunde cineva.


Utilizator anonim: poti terog sami explici pe scurtt cum ai facut programul
andrei750238: Mai intai citim sirul de caractere

char *p=strtok(s, " "); -> "Initializam" functia strtok cu sirul de caractere. Il punem sa separe in cuvinte.

Prin intermediul functiei afisare (care primeste parametru cuvantul) :
1. Copiem cuvantul actual in sirul cuv
2. Cautam urmatorul cuvant dupa cuvantul actual. Daca acesta exista, apelam functia pentru acesta
3. La final afisam cuvantul actual.
andrei750238: Astfel pentru fiecare cuvant se apeleaza functia. Primul cuvant nu se afiseaza decat dupa ce se afiseaza al doilea, care la randul sau se afiseaza dupa al treilea care .......... se afiseaza dupa ultimul. Se afiseaza deci cuvintele in ordine inversa.
Utilizator anonim: multumes mult
Alte întrebări interesante