Share via


basic_string::operator

Fournit une référence au caractère avec un index spécifié dans une chaîne.

const_reference operator[](
   size_type _Off
) const;
reference operator[](
   size_type _Off
);

Paramètres

  • _Off
    L'index de la position de l'élément à référencer.

Valeur de retour

Une référence au caractère de la chaîne à la position spécifiée par l'index de paramètre.

Notes

Le premier élément de la chaîne a un index de zéro, les éléments suivants sont indexés à la suite par des entiers positifs, afin qu'une chaîne de longueur n est un nièmeélément indexé par le numéro n à 1.

operator[] est plus rapide que la fonction membre à pour fournir l'accès en lecture et en écriture aux éléments d'une chaîne.

operator[] ne vérifie pas si l'index passé comme paramètre est valide, mais la fonction membre at effectué et par conséquent doit être utilisée dans la validité n'est pas sûre.Un index non valide (un index moins qui mettent à zéro ou supérieure ou égale à la taille de la chaîne) est passé à la fonction membre at lève une exception de classe d'out_of_range .Un index non valide est passé aux résultats d' operator[] dans le comportement non défini, mais l'index égal à la longueur de la chaîne est un index valide pour les chaînes const et l'opérateur retourne le caractère NULL une fois passé cet index.

La référence retournée peut être invalidée par les redistributions ou des modifications de chaîne pour les chaînes non deconst .

Lors de la compilation avec le _SECURE_SCL 1, une erreur d'exécution se produit si vous tentez d'accéder à un élément en dehors de les limites de la chaîne.Pour plus d'informations, consultez Itérateurs vérifiés.

Exemple

// basic_string_op_ref.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main( )
{
   using namespace std;
   string str1 ( "Hello world" ), str2 ( "Goodbye world" );
   const string cstr1 ( "Hello there" ), cstr2 ( "Goodbye now" );
   cout << "The original string str1 is: " << str1 << endl;
   cout << "The original string str2 is: " << str2 << endl;

   // Element access to the non-const strings
   basic_string <char>::reference refStr1 = str1 [6];
   basic_string <char>::reference refStr2 = str2.at ( 3 );

   cout << "The character with an index of 6 in string str1 is: "
        << refStr1 << "." << endl;
   cout << "The character with an index of 3 in string str2 is: "
        << refStr2 << "." << endl;

   // Element access to the const strings
   basic_string <char>::const_reference crefStr1 = cstr1 [ cstr1.length ( ) ];
   basic_string <char>::const_reference crefStr2 = cstr2.at ( 8 );

   if ( crefStr1 == '\0' )
      cout << "The null character is returned as a valid reference."
           << endl;
   else
      cout << "The null character is not returned." << endl;
   cout << "The character with index of 8 in the const string cstr2 is: "
        << crefStr2 << "." << endl;
}

Sortie

The original string str1 is: Hello world
The original string str2 is: Goodbye world
The character with an index of 6 in string str1 is: w.
The character with an index of 3 in string str2 is: d.
The null character is returned as a valid reference.
The character with index of 8 in the const string cstr2 is: n.

Configuration requise

en-tête : <string>

l'espace de noms : DST

Voir aussi

Référence

basic_string Class