devxlogo

Accessing a string element

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.

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist