Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: All
Jul 1, 1998



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Accessing a string element

The standard string class offers two ways to access a single character from a string object. The first one is to use the overloaded subscript operator [ ] like in the following example:
using namespace std;

void main()
  string s = "hello world";
  char c = s[0];  //assign  'h' to c
Another way is to use the at() member function:
  string s = "hello world";
  char c = s.at(0);  //assign  'h' to c; safer than [ ] but less efficient. 
catch(bad_range& str_ex) { //when accessing an out of range element, at() throws a bad_range exception
/*..*/ }
There are two differences between these access methods. The [ ] operator is efficient but unsafe since it does not perform range checking. Accessing an out of range member is possible and results in an undefined behavior. The at() member function, on the other hand, is less efficient but safer, since it performs range checks. In case of an attempt to access an out of range member, it throws an exception of type std::bad_range. Please note that exactly the same access rules apply to vector<> as well.
Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date