Ce face std::string::assign
s.assign(t) este echivalent cu s = t. Ce aduce în plus sunt variantele: assign(t, poz, n) pune în s doar o bucată din t, iar assign(n, c) îl face din n caractere c.
Spre deosebire de construirea unui șir nou, assign poate refolosi memoria deja alocată a lui s.
Parametri
| Parametru | Descriere |
|---|---|
text |
Noul conținut. |
poz, n |
Opțional: doar n caractere din text, de la poz. |
n, c |
Caracterul c repetat de n ori. |
Ce returnează
Referință la șirul modificat.
Exemple
Exemplul 1: Variantele lui assign
#include <iostream>
#include <string>
int main() {
std::string s = "text vechi";
s.assign("Iași");
std::cout << s << '\n';
std::string iban = "RO49AAAA1B31007593840000";
s.assign(iban, 4, 4); // codul băncii
std::cout << s << '\n';
s.assign(10, '=');
std::cout << s << '\n';
}
Rezultat
Iași
AAAA
==========
Greșeli frecvente
- Confunzi
assigncuappend:assignșterge conținutul vechi,appendadaugă la el.
Comenzi înrudite
std::string::append: Adaugă text la sfârșitul șirului, la fel ca +=, cu variante pentru bucăți și caractere repetate.std::string::substr: Returnează o bucată nouă din șir: n caractere începând de la poziția poz.std::string::swap: Schimbă conținutul a două șiruri între ele, rapid, fără copierea textului.