👤

realizati un program care, fiind dat un sir de caractere s, format din cuvinte separate prin spatiu, va afisa cuvintele cate unul pe rand dar caracterele din fiecare cuvant separate prin spatiu.
#include

#include

#include

using namespace std;

int main()

{

char s[100], *cuv;

int i, l;


cin.getline(s, 100);

cuv = strtok(s, " ");

while (cuv) {

for (i = 0; i <= strlen(cuv) - 1; i++) {

if (i == strlen(cuv) - 1)

cout << s[i] << endl;

else

cout << s[i] << " ";

}

cuv = strtok(NULL, " ");

}


}

cu inputul: este marti

afiseaza:
e s t e
e s t e

imi poate explica cineva ce este gresit la codul de mai sus?


Răspuns :

Răspuns:

Buna! O mica greseala, ai scris:

cout << s[i] << " "; si

cout << s[i] << " ";

Trebuie sa fie:

cout << cuv[i] << " ";

cout << cuv[i] << " ";

(de aia ti se afisa de 2 ori primul cuvant din s)

Uite codul modificat:

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

char s[100], *cuv;

int i, l;

cin.getline(s, 100);

cuv = strtok(s, " ");

while (cuv) {

for (i = 0; i <= strlen(cuv) - 1; i++) {

if (i == strlen(cuv) - 1)

cout << cuv[i] << endl;

else

cout << cuv[i] << " ";

}

cuv = strtok(NULL, " ");

}

return 0;

}

Vezi imaginea OILOVEYOUO
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Ne bucurăm să vă revedem și vă invităm să ne adăugați în lista de favorite!


Ze Schools: Alte intrebari