The standard C++ library provides a string class type that supports string operations and manipulations. Unlike a standard character array, the string class can dynamically resize itself and offers methods that help manipulate the string.
To instantiate and initialise a standard string object –
std::string str2 ("Hello String!");
or
const char* cStyleConstString = "This is a string"; std::string newString (cStyleConstString);
Instantiating a string object does not require the programmer to stipulate the length of the string or the memory allocation details because the constructor of the STL string class automatically does this.
Accessing Character Contents of a std::string
The contents of an STL string can be accessed via iterators or an array-like syntax using the subscript operator [] and offset. The following code lists all the characters in string mystring.
#include <string> #include <iostream> int main () { using namespace std; string myString ("Hello World"); // declare and initialise the string mystring cout << "list elements in string using array-syntax: " << endl; for (int charCounter = 0; charCounter < myString.length();++ charCounter) { cout << "Character " << charCounter << " ="; cout << myString [charCounter] << endl; } cout << endl; return 0; }
A further demonstration of some string class methods
#include <string> #include <iostream> #include <algorithm> int main () { using namespace std; string word="hello world";//create and initialise string word cout << "Original sting-" << word<< endl; transform(word.begin(), word.end(), word.begin(), ::toupper);//transform string word to upper case cout << "uppercase sting-" << word << endl; reverse (word.begin (), word.end ());//reverse characters in string word cout << "reverse sting-" << word << endl; reverse (word.begin (), word.end ());//reverse characters in string word word.erase (5, 6);//erase final 6 letters in string word cout << "erase first 5 characters-" << word << endl; cout << "enter you name" << endl; string usr_name; cin >> usr_name;//input string value word += " "; word += usr_name;//add user name to word cout << word <<endl; return 0; }