std::string::assign() en C++

La función miembro Assign() se usa para las asignaciones, asigna un nuevo valor a la string, reemplazando su contenido actual. 
Sintaxis 1: Asigne el valor de string str. 

string& string::assign (const string& str)

str :  is the string to be assigned.
Returns : *this

CPP

// CPP code for assign (const string& str)
#include <iostream>
#include <string>
using namespace std;
  
// Function to demonstrate assign
void assignDemo(string str1, string str2)
{
    // Assigns str2 to str1
    str1.assign(str2);
    cout << "After assign() : ";
    cout << str1;
 
}
         
// Driver code
int main()
{
    string str1("Hello World!");
    string str2("GeeksforGeeks");
 
    cout << "Original String : " << str1 << endl;
    assignDemo(str1, str2);
  
    return 0;
}

Producción: 

Original String : Hello World!
After assign() : GeeksforGeeks

Sintaxis 2: asigna como máximo str_num caracteres de str comenzando con el índice str_idx. Lanza out_of_range si str_idx > str. Talla(). 

string& string::assign (const string& str, size_type str_idx, size_type str_num)

str : is the string to be assigned.
str_idx : is the index number in str.
str_num : is the number of characters picked 
from str_idx to assign
Return : *this

CPP

// CPP code to illustrate
// assign(const string& str, size_type
// str_idx, size_type str_num)
  
#include <iostream>
#include <string>
using namespace std;
  
// Function to demonstrate assign
void assignDemo(string str1, string str2)
{
    // Assigns 8 characters from
    // 5th index of str2 to str1
    str1.assign(str2, 5, 8);
    cout << "After assign() : ";
    cout << str1;
 
}
         
// Driver code
int main()
{
    string str1("Hello World!");
    string str2("GeeksforGeeks");
 
    cout << "Original String : " << str1 << endl;
    assignDemo(str1, str2);
  
    return 0;
}

Producción: 

Original String : Hello World!
After assign() : forGeeks

Sintaxis 3: Asigne los caracteres de la string C cstr. Lanza length_error si el tamaño resultante excede el número máximo de caracteres. 

string & string::assign (const char* cstr)

Assigns all characters of cstr up to but not including '\0'.
Returns : *this.
Note : that cstr may not be a null pointer (NULL).

CPP

// CPP code for assign (const char* cstr)
  
#include <iostream>
#include <string>
using namespace std;
  
// Function to demonstrate assign
void assignDemo(string str)
{
    // Assigns GeeksforGeeks to str
    str.assign("GeeksforGeeks");
    cout << "After assign() : ";
    cout << str;
 
}
         
// Driver code
int main()
{
    string str("Hello World!");
 
    cout << "Original String : " << str << endl;
    assignDemo(str);
  
    return 0;
}

Producción: 

Original String : Hello World!
After assign() : GeeksforGeeks

Sintaxis 4: Asigna caracteres chars_len de la array de caracteres chars. Lanza length_error si el tamaño resultante excede el número máximo de caracteres. 

string& string::assign (const char* chars, size_type chars_len)

*chars : is the pointer to the array to be assigned.
chars_len : is the number of characters to be assigned from 
character array.
Note : that chars must have at least chars_len characters.
Returns : *this.

CPP

// CPP code to illustrate
// string& string::assign
// (const char* chars, size_type chars_len)
  
#include <iostream>
#include <string>
using namespace std;
  
// Function to demonstrate assign
void assignDemo(string str)
{
    // Assigns first 5 characters of
    // GeeksforGeeks to str
    str.assign("GeeksforGeeks", 5);
    cout << "After assign() : ";
    cout << str;
 
}
         
// Driver code
int main()
{
    string str("Hello World!");
 
    cout << "Original String : " << str << endl;
    assignDemo(str);
  
    return 0;
}

Producción: 

Original String : Hello World!
After assign() : Geeks

Sintaxis 5: asigna números de ocurrencias del carácter c. Lanza length_error si num es igual a string::npos 

string & string::assign (size_type num, char c)

num :  is the number of occurrences to be assigned.
c :  is the character which is to be assigned repeatedly. 
Throws length_error if the resulting size exceeds the maximum number(max_size) of characters.
Returns : *this.

CPP

// CPP code for string&
// string::assign (size_type num, char c)
  
#include <iostream>
#include <string>
using namespace std;
  
// Function to demonstrate assign
void assignDemo(string str)
{
    // Assigns 10 occurrences of 'x'
    // to str
    str.assign(10, 'x');
    cout << "After assign() : ";
    cout << str;
 
}
         
// Driver code
int main()
{
    string str("#########");
 
    cout << "Original String : " << str << endl;
    assignDemo(str);
  
    return 0;
}

Producción: 

Original String : #########
After assign() : xxxxxxxxxx

Sintaxis 6: Asigna todos los caracteres del rango [beg, end). Lanza length_error si el rango supera el contenido real de la string. 

template <class InputIterator>
   string& assign (InputIterator first, InputIterator last)
first, last : Input iterators to the initial and final positions 
in a sequence.

Returns : *this.

CPP

// CPP code for string&
// string::assign (size_type num, char c)
  
#include <iostream>
#include <string>
using namespace std;
  
// Function to demonstrate assign
void assignDemo(string str)
{
    string str1;
     
    // Assigns all characters between
    // str.begin()+6 and str.end()-0 to str1
    str1.assign(str.begin()+6, str.end()-0);
    cout << "After assign() : ";
    cout << str1;
 
}
         
// Driver code
int main()
{
    string str("Hello World!");
 
    cout << "Original String : " << str << endl;
    assignDemo(str);
  
    return 0;
}

Producción: 

Original String : Hello World!
After assign() : World!

Este artículo es una contribución de Sakshi Tiwari . Si le gusta GeeksforGeeks (¡sabemos que le gusta!) y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *