Situatie
Pentru orice sir de caractere, introdus de la tastatura, printr-un meniu adecvat, sa se realizeze, utilizandu-se o clasa clasasir, urmatoarele operatii: conversia sirului la caractere mici, conversia la caractere mari si adaugarea unui subsir la sirul dat
Solutie
#include<stdio.h>
#include<conio.h>
#include<string.h>
class clasasir
{
//definirea clasei sir
char sir[80]; // variabila sir ca membru privat implicit
public:
// declararea functiei de copiere sir
void copy (char *s) { strcpy(sir,s);}
// initializarea cu spatii a sirului s
clasasir(char *s=” “) {copy(s);}
// declararea functiei de scriere
void scrie(FILE *fileptr);
// declararea functiei de citire
void citeste(FILE *fileptr);
// declararea functiei de concatenare siruri
void operator +=(clasasir &s)
{
strcat(sir,s.sir); //concatenare siruri
}
// declararea functiei friend conversie caractere
friend void conversie(clasasir &s,char optiune);
}; // sfarsitul declararii clasei
// descrierea functiei de scriere
void clasasir::scrie(FILE *fileptr)
{
fprintf(fileptr,”\n sirul modificat este:%s”,sir);
}
// descrierea functiei de citire
void clasasir::citeste(FILE *fileptr)
{
// citeste din fisierul *fileptr si depune in sir
int sizesir; // se memoreaza lungimea sirului citit
fgets(sir,80,fileptr);
sizesir=strlen(sir)-1;
if(sir[sizesir]==’\n’) sir[sizesir]=0;
}
// descrierea functiei de conversie sir
void conversie(clasasir &s,char optiune)
{
clasasir tempsir;
switch (optiune)
{
case ‘1’: strupr(s.sir);//conversie in majuscule
break;
case ‘2’: strlwr(s.sir);//conversie in minuscule
break;
case ‘3’: printf(“\n introduceti un sir (max 80):”);
tempsir.citeste(stdin); //citeste un alt sir
s+=tempsir; //concateneaza sirurile
break;
default: printf(“\n optiune eronata \n”);
}
}
void main()
{
clasasir clsir; //declararea obiectului clsir
char alegere=’1′,r=’d’;
while (r==’d’)
{
printf(“\n dati un sir (max=80 caractere):”);
clsir.citeste(stdin);
do
{
// afisarea meniului de comenzi
printf(“\n ==============================”);
printf(“\n 1. conversie sir in majuscule”);
printf(“\n 2. conversie sir in minuscule”);
printf(“\n 3. adaugare subsir la sirul dat”);
printf(“\n t. terminare program”);
printf(“\n ==============================”);
printf(“\n alegeti o optiune:”);
alegere=getchar();getchar();
}
while((alegere!=’1′)&&(alegere!=’2′)&&
(alegere!=’3′)&&(alegere!=’t’));
while(alegere!=’t’)
{
conversie(clsir,alegere);
clsir.scrie(stdout);
do
{
// reafisarea meniului de comenzi
printf(“\n ==============================”);
printf(“\n 1. conversie sir in majuscule”);
printf(“\n 2. conversie sir in minuscule”);
printf(“\n 3. adaugare subsir la sirul dat”);
printf(“\n t. terminare program”);
printf(“\n ==============================”);
printf(“\n alegeti o optiune:”);
alegere=getchar();getchar();
}
while((alegere!=’1′)&&(alegere!=’2′)&&
(alegere!=’3′)&&(alegere!=’t’));
}
printf(“\n continuati?(d/n):”);
r=getche();
}
printf(“\n terminat \n”);
}
Leave A Comment?