Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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:
 
#include  
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:
 
try
{
  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.

 

 

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