Compartilhar via


basic_string::operator[]

Fornece uma referência ao caractere com um índice especificado em uma cadeia de caracteres.

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

Parâmetros

  • _Off
    O índice de posição do elemento a ser referenciado.

Valor de retorno

Uma referência ao caractere da cadeia de caracteres na posição especificada pelo índice do parâmetro.

Comentários

O primeiro elemento da cadeia de caracteres tem um índice de zero, e os seguintes elementos são indexados consecutivamente pelos números inteiros positivos, de forma que uma cadeia de caracteres de comprimento n tem um nésimo elemento indexado pelo número n - 1.

operator[] é mais rápido do que a função de membro em para fornecer acesso de leitura e gravação aos elementos de uma cadeia de caracteres.

operator[] não verifica se o índice passado como um parâmetro é válido, mas não souber a função de membro at torna e assim que deve ser usada na validade. Um índice inválido (um índice menor que zero ou maior ou igual ao tamanho da cadeia de caracteres) transmitido à função de membro at gerará uma exceção de classe de out_of_range . Um índice inválido passado para os resultados de operator[] em comportamento indefinido, mas o índice igual ao comprimento da cadeia de caracteres for um índice válido para cadeias de caracteres de const e o operador retorna o caractere nulo quando é passada esse índice.

A referência pode ser invalidado retornada por redistribuições ou por alterações de cadeia de caracteres para as cadeias de caracteres não deconst .

Ao criar com _SECURE_SCL 1, um erro de tempo de execução ocorrerá se você tentar acessar um elemento fora dos limites de cadeia de caracteres. Consulte Iteradores Verificados para maiores informações.

Exemplo

// 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;
}

Saída

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.

Requisitos

Cabeçalho: <cadeia de caracteres>

Namespace: std

Consulte também

Referência

Classe basic_string