Notice: Constant WP_MEMORY_LIMIT already defined in /home/gabrielraileanu/invatainfo.ro/wp-config.php on line 91

Notice: Constant WP_MAX_MEMORY_LIMIT already defined in /home/gabrielraileanu/invatainfo.ro/wp-config.php on line 92
Funcții fundamentale șiruri de caractere - Învață Info

Funcții fundamentale șiruri de caractere

Am vorbit mult despre șiruri de caractere într-o categorie aparte, folosind multe funcții predefinite. Câteva dintre cele mai importante funcții ce se pot aplica în acest caz sunt:

  • Funcția strlen

Returnează lungimea unui șir de caractere (fără a lua în considerare caracterul nul, care marchează sfârșitul șirului). Formă generală: strlen (șir de caractere)

Exemplu: Se citește un șir de caractere. Să se afișeze lungimea acestuia.
Pentru șirul Ana are mere se va afișa valoarea 12.
Pentru șirul Invata info se va afișa valoarea 11.

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char s[100];
    cout<<"Care este sirul?"; 
    cin.get(s, 99);
    cout<<strlen(s);
    return 0;
}
  • Funcția strcpy

Funcția are rolul de a copia șirul de la adresa sursă la adresa destinație. Deși este incorect informatic, pentru o mai bună înțelegere, funcția se poate explica astfel: textul destinație este șters și înlocuit cu șirul sursă.
Formă generală: strcpy (destinație, sursă)

Exemplu 1: Se citesc de la tastatură 2 șiruri de caractere. Să se folosească funcția strcpy.

Practic, în șirul s se va copia șirul g.

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char s[100], g[100];
cout<<"Care este sirul 1?"; 
cin.get(s, 99); cin.get();
cout<<"Care este sirul 2?"; 
cin.get(g, 99);
strcpy(s, g);
cout<<s;
return 0;
}

Exemplu 2: copierea unui șir de caractere de la o poziție i a primului șir. Astfel, programul de mai jos copiază șirul g de la poziția i+1 a șirului s în dreapta.

Pentru șirul s Ana are mere, i=5 și un șir g mihai se va afișa Ana amihai

#include<iostream>
#include <cstring>
using namespace std;
char s[100], g[100];
int i;
cout<<"Care este sirul 1?"; 
cin.get(s, 99); cin.get();
cout<<"Care este sirul 2?"; 
cin.get(g, 99);
cout<<"Pozitia?"; cin>>i;
strcpy(s+i, g);
cout<<s;
return 0;
}
]
  • Funcția strcat

Funcția are rolul de a concatena (a lipi) 2 șiruri de caractere . La sfârșitul șirului destinație se adaugă șirul sursă.
Formă generală: strcat (destinație, sursă)
Exemplu: Se citesc de la tastatură 2 șiruri de caractere. Să se concateneze cele 2 șiruri.
Pentru șirul s Ana are mere și un șir g mihai se va afișa Ana are meremihai

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char s[100], g[100];
cout<<"Care este sirul 1?";
cin.get(s, 99); cin.get();
cout<<"Care este sirul 2?";
cin.get(g, 99);
strcat(s, g);
cout<<s;
return 0;
}
  • Funcția strncat

Are la bază funcția strcat, doar că este o extindere a acesteia. Copiază doar primele n caractere ale șirului sursă
Formă generală: strncat (sursă, destinație, nr_caractere)

Exemplu: Se citesc de la tastatură 2 șiruri de caractere. Să se concateneze primele 5 caractere din șirul doi în primul.
Pentru șirul s Ana are mere și un șir g Rebeca nu arese va afișa Ana are mereRebec

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char s[100], g[100];
    cout<<"Care este sirul 1?";
    cin.get(s, 99); cin.get();
    cout<<"Care este sirul 2?";
    cin.get(g, 99);
    strncat(s, g, 5);
    cout<<s;
    return 0;
}
  • Funcția strchr

Funcția se folosește pentru a returna subșirul care începe cu caracterul căutat. În cazul în care acesta nu se regăsește în șir, se returnează valoarea NULL.
Formă generală: strchr(sir, ‘caracter’)*

*Important este faptul că funcția este case sensitive, deci face diferență între litere mici și litere mari.

Exemplu: Se citesc de la tastatură un caracter și un șir. Să se folosească funcția strchr.
Pentru șirul s Ana are mere și un caracter g ase va afișa a are mereRebec

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char s[100], g;
    cout<<"Care este sirul 1?";
    cin.get(s, 99); cin.get();
    cout<<"Care este caracterul?"; cin>>g;
    cout<<strchr(s, g);
    return 0;
}
  • Funcția strstr

Funcția este o extindere a funcției precedente, căutându-se un subșir (în loc de caracter) în șirul principal. Se returnează subșirul cre începe cu șirul căutat, iar în cazul inexistenței, se returnează NULL.
Formă generală: strstr(s1, s2)*

*Important este faptul că funcția este case sensitive, deci face diferență între litere mici și litere mari.

Exemplu: Se citesc de la tastatura 2 șiruri: s1 și s2. Să se caute și să se returneze secvența care începe cu cel de-al doilea șir citit.
Pentru șirul s1 Mihaela are mere, Georgeta nu are mere, iar Gica are si el, iar pentru s2 mere se va returna mere, Georgeta nu are mere, iar Gica are si el

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char s1[100], s2[100];
    cout<<"Care este sirul 1?";
    cin.get(s1, 99); cin.get();
    cout<<"Care este sirul 2?";
    cin.get(s2, 99);
    cout<<strstr(s2, g);
    return 0;
}

De asemenea, ai putea dori...

Lasă un răspuns

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.