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.

Publicitate

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.


Publicitate

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.

Publicitate

Particularitățile funcției

Trebuie să ținem cont de câteva aspecte atunci când utilizăm funcția strncat():

  • adaugă cel mult n caractere din sursa la sfârșitul lui destinatie;
  • 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.