strcat()
Funcția
strcat()concatenează (adaugă) un șir de caractere la finalul altui șir.
Utilizarea funcției implică includerea bibliotecii <cstring> în program.
- Sintaxa
char* strcat(char* destinatie, const char* sursa);- Parametri
destinatie: șirul la finalul căruia se adaugă conținutul;sursa: șirul concatenat în șirul destinație.
- Returnare
- Funcția returnează adresa din memorie (un pointer) spre șirul trimis în parametrul
destinatie.
Exemple de utilizare
Concatenare simplă
#include <cstring>
// ...
int main() {
char text[50] = "Salut, ";
char nume[] = "Ion!";
strcat(text, nume);
cout << text;
return 0;
}
Salut, Ion!
Funcția strcat() pune automat marca de sfârșit de șir în șirul destinație.
Funcția nu verifică dacă există suficient spațiu în destinație! Dacă șirul concatenat depășește dimensiunea șirului în care lipim caracterele, rezultatul obținut nu va fi cel așteptat (comportament imprevizibil).
Construirea unui text
#include <iostream>
#include <cstring>
using namespace std;
char text[101], fructe[21];
int main(){
cin.get(fructe, 21);
strcat(text, "Ma duc sa cumpar ");
strcat(text, fructe);
cout << text;
return 0;
}
> portocale
Ma duc sa cumpar portocale
Cu ajutorul funcției strcat() putem construi un șir concatenând de mai multe ori diferite alte șiruri. În exemplul anterior am citit de la tastatură un șir, pe care mai apoi l-am adăugat la finalul textului pentru a obține o propoziție.
strncat()
Funcția
strncat()concatenează un număr fix de caractere la finalul altui șir de caractere.
Utilizarea funcției implică includerea bibliotecii <cstring> în program.
- Sintaxa
char* strncat(char* destinatie, const char* sursa, size_t n);- Parametri
destinatie: șirul în care realizăm concatenarea;sursa: șirul pe care îl lipim la destinație;n: numărul (maxim) de caractere copiate.
- Returnare
- Funcția returnează un pointer (adresa din memorie) spre
destinatie, adică șirul în care s-a realizat concatenarea.
Particularitățile funcției
Trebuie să ținem cont de câteva aspecte atunci când utilizăm funcția strncat():
- adaugă cel mult
ncaractere dinsursala sfârșitul luidestinatie; - adaugă automat caracterul nul
'\0'la finalul șirului; - dacă destinația nu are suficientă memorie liberă, nu vom obține un rezultat favorabil.
Exemplu concatenare parțială
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char text[30] = "Nota obtinuta: ";
char nota[] = "10.00 cu felicitari!";
strncat(text, nota, 5);
cout << text;
return 0;
}
Nota obtinuta: 10.00
Specificând un al treilea parametru pentru funcția strncpy(), vom adăuga astfel doar primele 5 caractere din nota în textul final.