Partager via


basic_string::at

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

const_reference at(
    size_type _Off
) const;
reference at(
    size_type _Off
);

Paramètres

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

Valeur de retour

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

Notes

Le premier élément dans la chaîne possède un index de zéro, les éléments suivants sont indexés consécutivement par des entiers positifs, afin qu'une chaîne de longueur n ait son nièmeélément indexé par le nombre n - 1.

L' opérateurs [] membre est plus rapide que la méthode à pour fournir un accès en lecture et en écriture aux éléments d'une chaîne.

Le membre operator[] ne vérifie pas si l'index transmis comme paramètre est valide, mais la méthode at le fait et doit donc être utilisée si la validité n'est pas certaine. Un index invalide, qui est un index inférieur à zéro ou supérieur ou égal à la taille de la chaîne, passé à la méthode at lève l'exception classe out_of_range. Un index invalide passé à l' operator[] résulte d'un comportement indéfini, mais l'index égal à la longueur de la chaîne est un index valide pour les chaînes consts et l'opérateur retourne le caractère NULL lorsque cet index lui est passé.

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

Exemple

// basic_string_at.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 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 8 in the const string cstr2 is: n.

Configuration requise

En-tête : <chaîne>

Espace de noms : std

Voir aussi

Référence

basic_string, classe