Informatică, întrebare adresată de Buzby, 10 ani în urmă

Se consideră un text cu maximum 255 de caractere în care cuvintele sunt separate prin unul sau mai multe spaţii. Primul caracter din textul citit este o literă, iar cuvintele sunt formate numai din litere mici ale alfabetului englez. Scrieţi un program C/C++ care citeşte de la tastatură textul şi îl transformă înlocuind prima literă a fiecărui cuvânt cu litera mare corespunzătoare, restul caracterelor rămânând nemodificate. Textul astfel transformat va fi afişat pe ecran. Exemplu: dacă de la tastatură se introduce textul: mare frig rosu se va afişa pe ecran: Mare Frig Rosu. 

Programul facut de mine este:

#include<iostream>
#include<cstring>
using namespace std;
char text[256], *p, sep[]="  ";
void Citire()
{cout<<"Dati textul:";
 cin.get(text, 256);cin.get();}
void Transformare()
{p=strtok(text, sep);
while(p){if (p[0]>=97)p[0]=p[0]-32;     
           p=strtok(NULL,sep);}
  }
int main()
{Citire();
Transformare();
return 0;

Problema e ca imi afiseaza doar primul cuvant. Ce ar trebui sa fac pentru a afisa tot textul modificat?

Răspunsuri la întrebare

Răspuns de CrazzyBeer
1
Am pus doar conditia - daca este primul caracter sau caracterul precedent este *space*, atunci scrie litera majuscula, in caz contrar - scrie litera minuscula.
Mai pune niste spatii si separa liniile - codul devine mult mai citibil.
Anexe:

CrazzyBeer: Nu trebuie sa faci o locomotiva, ca sa pornesti o biciclera :)
CrazzyBeer: ta*
Alte întrebări interesante