Documente Academic
Documente Profesional
Documente Cultură
# include<iostream>
# include<string.h>
int main()
{
char s[10]; //dim sir trebuie sa fie cel putin cu 1 mai mare decat
//lungimea efectiva a sirului, ultimul caracter fiind
// caracterul NULL (0 binar). In şirul se pot memora maxim 9
caractere
}
# include<iostream>
# include<string.h>
int main()
{
//Initializare la declarare
char s[10]="abc", s1[5]={'a','b','c'};
//Initializare in program
strcpy(s,"abc");
4.1)
# include<iostream>
# include<string.h>
int main()
{
char s[5]; //dim sir trebuie sa fie cel putin cu 1 mai mare decat
//lungimea efectiva a sirului, ultimul caracter fiind
// caracterul NULL (0 binar)
cin>>s; //citeste pana la spatiu
cout<<s;
}
4.2)
# include<iostream>
# include<string.h>
# include<ctype.h>
int main()
{
char s[50];
cin.get(s,50); //citeste pana la ENTER, fara a extrage ENTER din buffer
// sau max 49 caractere
cout<<s;
}
4.3)
# include<iostream>
# include<string.h>
# include<ctype.h>
int main()
{
char ss[50],sd[50];
cin.get(ss,50); //citeste pana la ENTER, fara a extrage ENTER din buffer
cin.get(sd,50); // al doilea sir nu a mai fost citit
cout<<ss<<endl<<sd;
}
4.4)
# include<iostream>
# include<string.h>
# include<ctype.h>
int main()
{
char ss[50],sd[50],*p;
cin.get(ss,50); //citeste pana ENTER, fara a extrage ENTER din buffer
cin.get(); //extrage ENTER-ul tastat dupa primul sir si permite tastarea
celui
//de-al doilea sir
cin.get(sd,50);
cout<<ss<<endl<<sd;
}
4.5)
# include<iostream>
# include<string.h>
# include<ctype.h>
int main()
{
char ss[50],sd[50];
cin.getline(ss,50); //citeste pana la ENTER si extrage ENTER din buffer
cin.getline(sd,50);
cout<<ss<<endl<<sd;
}
strcpy(sir_destinatie, sir_sursa)
strncpy(sir_destinatie, sir_sursa,n) – copiaza primele n caractere din
sirul sursa in sirul destinatie
8. Conversii
char s[4]="abc";
…
strupr(s);
cout<<s; => ABC
double atof(sir)
int atoi(sir)
long atol(sir)
Exemplu:
double n;
char sir[10]="123";
….
n=atof(sir);
Exemplu:
int n;
char sir[10];
….
n=13;
itoa(n,sir,10);
cout<<sir; =>"13"
int main()
{ // Cauta caracterul c in sirul ss, de la stanga la dreapta
char ss[50],*p,c;
cin.getline(ss,50);
cin.get(c); //citeste un caracter
p=strchr(ss,c);
if (p) cout<<c<<" exista in sir pe pozitia "<<p-ss+1;
else cout<<"Nu exista";
}
9. b) Afişarea poziţiilor tuturor apariţiilor unui caracter într-un şir parcurs de la stânga la
dreapta
# include<iostream>
# include<string.h>
int main()
{
char ss[50],*p,c;
cin.getline(ss,50); //citeste pana la ENTER si extrage ENTER din buffer
cin.get(c);
// Afiseaza pozitiile tuturor aparitiilor caracterului c in ss de la stg
// la dreapta
p=strchr(ss,c);
while (p)
{
cout<<p-ss+1<<" ";
p=strchr(p+1,c);
}
}
10. c) Afişarea poziţiilor tuturor apariţiilor unui caracter într-un şir parcurs de la dreapta la
stânga :
strrchr(ss,c)
# include<iostream>
# include<string.h>
# include<ctype.h>
int main()
{
char ss[50],*p,c;
cin.getline(ss,50); //citeste pana la ENTER si extrage ENTER din buffer
cin.get(c);
// Afiseaza pozitiile tuturor aparitiilor caracterului c in ss de la
// dreapta la stg
p=strrchr(ss,c); // ultima aparitie
while (p)
{
cout<<p-ss+1<<" ";
strcpy(p,p+1); // se sterge ultimul element gasit
p=strrchr(ss,c);
}
}
#include <iostream>
#include<string.h>
#include<conio.h>
int main()
{
cin.getline(sir,199);
cin.getline(subsir,19);
p=strstr(sir,subsir);
if (p)
{cout<<p; // va afisa toate caracterele din sir de la subsirul redasit in
sir
// pana la sfarsitul sirului, adica pana la caracterul NULL
cout<<endl;
cout<<p-sir+1;//afiseaza pozitia primei aparitii a subsirului in sir
}
else
cout<<"Subsir inexistent";
getch();
}
#include <iostream>
#include<string.h>
#include<conio.h>
#include<iostream>
#include<conio.h>
#include<string.h>
/* Stergerea tuturor aparitiilor unui subsir din cadrul unui sir */
int main()
{ char sir[1000], subsir[25], *p;
int lung_subsir;
cout<<"Introduceti textul:";cin. getline(sir,1000);
cout<<"Introduceti textul:";cin.getline(subsir,1000);
lung_subsir=strlen(subsir);
#include<iostream>
#include<conio.h>
#include<string.h>
int main()
{ char sir[100], sterg[25], adaug[25], man[100], *p;
int lung_sterg,lung_adaug;
cout<<"Introduceti textul:";cin. getline(sir,100);
cout<<"Introduceti textul de sters:";cin.getline(sterg,100);
cout<<"Introduceti textul de inlocuit:";cin.getline(adaug,100);
lung_sterg=strlen(sterg);
lung_adaug=strlen(adaug);
p=strstr(sir,sterg); //prima aparitie a subsirului de sters
while (p)
{
man[0]=0; //subsir vid
strncat(man,sir,p-sir);//adauga subsirul pana la sirul de sters
strcat(man,adaug);//adauga sirul adaug
strcat(man,p+lung_sterg); //adauga ceea ce a ramas din sir prin stergerea lui
sterg
strcpy(sir,man); //se copiaza man peste sir
p=strstr(p+lung_adaug,sterg);//poz. pe urmatoarea aparitie a lui sterg
}
cout<<sir;
}
#include<string.h>
#include<conio.h>
char sir[10001],sep[]=". ,!" , //sirul separatorilor posibili
*p, //p=variabila de tip pointer care contine adresa primului caracter din
cuvantul extras
cuvinte[300][30]; // matricea de caractere=un vector cu cuvinte
int i,n;//variabile numerice globale sunt initializate cu 0
int main()
{
cin.getline(sir,10000);
p=strtok(sir,sep);
while (p)
{ strcpy(cuvinte[n],p);
n++;
p=strtok(NULL,sep);
}
n--;
for(i=0;i<=n;i++)
cout<<cuvinte[i]<<" ";
getch();
return 0;
}
#include <iostream>
#include <string.h>
main ()
{ char cuv[30][255],aux[255];long int n,i,sort;
cin>>n;
cin.get();
for (i=1;i<=n;i++)
cin>>cuv[i];
do
{ sort=1;
for(i=1;i<n;i++)
if ((strcmp(cuv[i],cuv[i+1])>0))
{ aux[0]=0;
strcpy(aux,cuv[i]);
strcpy(cuv[i],cuv[i+1]);
strcpy(cuv[i+1],aux);
sort=0;} }
while(sort);
for (i=1;i<=n;i++)
cout<<cuv[i];