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
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.
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 :)
Alte întrebări interesante
Limba română,
9 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă
Ed. tehnologică,
10 ani în urmă
Limba română,
10 ani în urmă
Biologie,
10 ani în urmă