Documente Academic
Documente Profesional
Documente Cultură
CARACTERE
Declararea i memorarea
sirurilor de caractere
Un sir de caractere:
- este un tablou unidimensional (vector) de caractere;
- reprezinta o succesiune de caractere cuprins ntre ghilimele si terminat cu
caracterul NULL notat \0;
-contine orice tip de caracter: litera mica, litera mare, cifra,
caracter special, delimitator, fiecare caracter fiind reprezentat prin codul
ASCII.
Datele care se reprezint sub form se iruri de caractere au o
larg aplicabilitate n programarea calculatoarelor, indiferent de limbajul
folosit. Astfel i n limbajul C se pot memora i prelucra informaii de tip
ir de caractere. Cu toate c limbajul c nu conine un tip de date special
pentru iruri de caractere aa cum are limbajul Pascal, se pot utiliza
tablouri unidimensionale de caractere.
Declararea unui tablou de caractere se face astfel:
char
nume_tablou[dimensiune_maxim];
Exemplu 1: char sir[20]; char t[10];
Exemplul 2:
char a[15]=calculator;
-se declara un sir de caractere n care vor putea
fi memorate maxim 14 caractere;
- sirul de caractere a a fost initializat la
declararea lui,daca se initializeaza sirul de
caractere, nu mai este nevoie sa se
precizeze lungimea maxima a sirului,
aceasta fiind calculata de catre compilator:
char a[]=calculator;
Prezentare generala
* Fiecare caracter din setul de caractere al limbajului C++ se
caracterizeaza printr-un cod unic, numit codul ASCII al
caracterului, un numar ntreg ntre 0 si 255.
n cadrul setului ASCII, codurile caracterelor sunt dupa cum
urmeaza:
- literele mari ncepnd cu 65 (A - 65, B - 66, ..., Z-90);
- literele mici ncepnd cu 97 (a 97, b 98, ..., z 122);
- cifrele ncepnd cu 48 ( 1 49, ..., 9 57).
*Observm c caracterul '0' nu are in codul ASCII valoarea
0, ci 48.
- caracterul spaiu este un caracter imprimabil. Spatiul are
in codul ASCII valoarea 32.
Forma :
cin.get();
-folosita dupa o functie cin.get() cu
parametri pentru a descarca din fluxul de
date ultimul caracter citit, care ar mpiedica
efectuarea unei a doua operatii de citire de la
tastatura.
Exemplul:
char s[10];
cin.get(s,5);
//daca introducem textul informatica si tastam
Enter se memoreaza n variabila s sirul info;
Initializarea pointerilor
Initializarea unui sir se poate face in mai multe moduri:
1. Initializarea fiecarui element cu cate un caracter:
s[0] = 'A';
s[1] = 'B';
s[2] = 'C';
s[3] = '\0';
2. Sirurile se pot initializa la fel ca si caracterele:
char s[] = "abc";
sau echivalent
char s[] = {'a', 'b', 'c', '\0'};
3. Putem folosi si un pointer catre un sir constant, dar
interpretarea este diferita:
char *p = "abc";
Exemplu:
char s[21];
int n;
cin>>s;
n=strlen(s);
cout<<n;
Exemplu:
char a[21],b[21];
cin>>a;
strcpy(b,a);
cout<<b;
strncpy(sir1,sir2,nr)
unde sir1 i sir2 sunt dou variabile de tip ir de caractere,
iar nr este o variabil de tip ntreg.
Exemplu:
char a[21],b[21];
cin>>a;
strncpy(b,a,4);
b[4]=NULL;
cout<<b;
Dac se citete n variabila a irul informatica se afieaz irul info.
Exemplu:
char a[21],b[21];
cin>>a>>b;
strcat(a,b);
cout<<a;
strncat(sir1,sir2,nr)
unde sir1 i sir2 sunt dou variabile de tip ir de
caractere, iar nr este o variabil de tip ntreg.
Exemplu:
char a[21],b[21];
cin>>a>>b;
strncat(a,b,3);
cout<<a;
Dac se citete n variabila a irul info i n variabila b
Exemplu:
char a[21],b[21];
cin>>a>>b;
cout<<strncmp(a,b,3);
Dac se citete n variabila a irul info i n variabila b irul
intro afieaz valoarea -14.
stricmp(sir1,sir2)
unde sir1 i sir2 sunt dou variabile de tip ir de caractere.
Exemplu:
char a[21],b[21];
cin>>a>>b;
cout<<stricmp(a,b);
strlwr(sir)
unde sir este o variabil de tip ir de caractere.
Exemplu:
char a[21];
cin>>a;
strlwr(a);
cout<<a;
strupr(sir)
unde sir este o variabil de tip ir de caractere.
Exemplu:
char a[21];
cin>>a;
strupr(a);
cout<<a;
Exemplu:
char c;
cin>>c;
c=tolower(c);
cout<<c;
Exemplu:
char c;
cin>>c;
c=toupper(c);
cout<<c;
strchr(sir,ch)
unde sir este o variabil de tip sir de caractere, iar ch este o variabil
de tip caracter.
Exemplu:
char a[21],c;
cin>>a>>c;
cout<<strchr(a,c);
Exemplu:
char a[21],c;
cin>>a>>c;
cout<<strrchr(a,c);
Exemplu:
char a[21],b[21];
cin>>a>>b;
cout<<strstr(a,b);
strrev(sir)
unde sir este o variabill de tip ir de caractere.
Exemplu:
char a[21];
cin>>a;
strrev(a);
cout<<a;
PROBLEME
1.Se citesc de la tastatur dou iruri s1 i s2. S se elimine
toate apariiile lui s2 n s1. irul s2 conine doar un
cuvnt.
Exemplu: s1=ana are mere,
s2=re; Se afiseaza: ana a me.
#include <iostream>
#include <cstring>
using namespace std;
int main()
{ char s1[100],s2[30],p;
int l;
cout<<"introduceti textul:"; cin.get(s1,100);
cout<<"introduceti cuvantul:"; cin>>s2;
l=strlen(s2); p=strstr(s1,s2);
while(p!=0)
{strcpy(p,p+l);
p=strstr(s1,s2);}
cout<<s1;