C++ String Examples
constructors 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
char *line = "short line for testing";
// with no arguments
string s1;
s1 = "Anatoliy";
cout << "s1 is: " << s1 << endl;
// copy constructor
string s2 (s1);
cout << "s2 is: " << s2 << endl;
// one argumen
string s3 (line);
cout << "s3 is: " << s3 << endl;
// first argumen C string
// second number of characters
string s4 (line,10);
cout << "s4 is: " << s4 << endl;
// 1 - C++ string
// 2 - start position
// 3 - number of characters
string s5 (s3,6,4); // copy word 'line' from s3
cout << "s5 is: " << s5 << endl;
// 1 - number characters
// 2 - character itself
string s6 (15,'*');
cout << "s6 is: " << s6 << endl;
// 1 - start iterator
// 2 - end iterator
string s7 (s3.begin(),s3.end()-5);
cout << "s7 is: " << s7 << endl;
// you can instantiate string with assignment
string s8 = "Anatoliy";
cout << "s8 is: " << s8 << endl;
return 0;
}
OUTPUT:
// s1 is: Anatoliy
// s2 is: Anatoliy
// s3 is: short line for testing
// s4 is: short line
// s5 is: line
// s6 is: ***************
// s7 is: short line for te
// s8 is: Anatoliy
getline 1.
/* 1 getline ( intut_stream, str, delim );
Extracts characters from intut_stream and stores them
in str until s.max_size() characters have been extracted,
the end of file occurs, or delim is encountered, in which
case delim is extracted from istr but is not stored in s
2 getline( Iter, str )
Inputs a string value for str as in the preceding func
tion with delim =
*/
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
int main ()
{
string str;
cout << "Enter string (EOL = $) : ";
getline (cin, str, '$');
cout << "Str is : " << str << endl;
ifstream In("data.dat");
vector v;
cout << endl << "Read data from file" << endl;
while ( ! In.eof() )
{
getline (In, str);
v.push_back(str);
}
copy (v.begin(),v.end(),
ostream_iterator(cout,"\n"));
cout << endl;
return 0;
}
OUTPUT:
// Enter string (EOL = $) : Str is : first line
// second line$
//
// Read data from file
// file: "data.dat"
// second line
// last line
<< >> operators 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str;
cout << "Enter string for testing : ";
cin >> str;
cout << "\nString is : " << str << endl;
cout << "Enter string for testing "
<< "(d to quit) : ";
while ( cin >> str )
{
cout << endl;
cout << "String is : " << str << endl;
cout << "Enter string for testing "
<< "(d to quit) : ";
}
return 0;
}
OUTPUT:
// Enter string for testing : first
// String is : first
// Enter string for testing (d to quit) : second
// String is : second
// Enter string for testing (d to quit) : third
// String is : third
// Enter string for testing (d to quit) :
+ += = operators 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "Hello";
cout << "str is : " << str << endl;
str += ",";
str += ' ';
cout << "str is : " << str << endl;
string s;
s = str + "World";
cout << "s is : " << s << endl;
char ch = '!';
s += ch;
cout << "s is : " << s << endl;
return 0;
}
OUTPUT:
// str is : Hello
// str is : Hello,
// s is : Hello, World
// s is : Hello, World!
append 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "Nobody is perfect";
string s = ""; // empty string
char *ch = "abcdef";
// append string str at the end of s;
// return s
// appends at the end of s a copy of the n characters
// in str, starting at position pos; if n is too
// large, characters are copied only until the end
// of str is reached;
// returns s
s.append(str,0,6);
cout << "s is : " << s << endl;
// appends copies of the characters in the range [inpIt1,
// inpIt2] to s; returns s
string::iterator inpIt1 = str.begin()+6;
//start from ' is'
string::iterator inpIt2 = str.end();
s.append(inpIt1,inpIt2);
cout << "s is : " << s << endl;
// appends three !
s.append(3,'!');
cout << "s is : " << s << endl;
// appends the first n characters in ch at the end
// of s; returns s
s.append(ch,3);
cout << "s is : " << s << endl;
// appends charArray at the end of s; returns s
s.append(ch,3);
cout << "s is : " << s << endl;
return 0;
}
OUTPUT:
// s is : Nobody
// s is : Nobody is perfect
// s is : Nobody is perfect!!!
// s is : Nobody is perfect!!!abc
// s is : Nobody is perfect!!!abcabc
assign 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "Nobody is perfect";
string s = "";
char *ch = "Robert Frost";
// assigns a copy of str to s; returns s
s.assign(str);
cout << "s is : " << s << endl;
// assigns to s a copy of the n characters in str, start
// ing at position 10: if n is too large, characters are
// copied only until the end of str is reached: returns s
s.assign(str,10,7); // perfect
cout << "s is : " << s << endl;
// assigns to s a string consisting of the first n charac
// ters in ch: returns s
s.assign(ch,6);
cout << "s is : " << s << endl;
// assigns to s a copy of ch: returns s
s.assign(ch);
cout << "s is : " << s << endl;
// assigns to s a string consisting of the characters in
// the range str.begin(), str.end(); returns s
s.assign(str.begin(),str.end());
cout << "s is : " << s << endl;
// assigns to s a string consisting of n copies of ch;
// returns s
s.assign(17,'*');
cout << "s is : " << s << endl;
return 0;
}
OUTPUT:
// s is : Nobody is perfect
// s is : perfect
// s is : Robert
// s is : Robert Frost
// s is : Nobody is perfect
// s is : *****************
at 1.
// returns s[pos]
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string s = "Nobody is perfect";
// Returns s[pos]
for ( int pos = 0; pos < s.length(); ++pos )
cout << s.at(pos) << " ";
cout << endl;
return 0;
}
OUTPUT:
// N o b o d y i s p e r f e c t
begin 1.
// Returns an iterator positioned at the
// first character in a string
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "C++ is best computer language";
string::iterator It = str.begin();
while ( It != str.end() )
{
if ( *It == ' ' )
*It = '\n';
cout << *It++;
}
cout << endl;
return 0;
}
OUTPUT:
// C++
// is
// best
// computer
// language
c_str 1.
// returns (the base address of) a char
// array containing the characters stored in s,
// terminated by a null character.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "Anatoliy";
char *ary = new char[str.length()+1];
// strcpy ( ary, str ); that is wrong way
strcpy ( ary, str.c_str() ); // that is correct
cout << ary << endl;
return 0;
}
OUTPUT:
// Anatoliy
capacity 1.
// returns the size (of type size_type)
// of the storage allocated in string
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "C++ is best computer language";
string::size_type cap;
cap = str.capacity();
cout << "Capacity of str is: " << cap << endl;
cout << "Size of str is : " << str.size()
<< endl;
cout << "Length of str is : " << str.length()
<< endl;
cout << "Resize the str for 50 character" << endl;
str.resize(50);
cap = str.capacity();
cout << "Capacity of str is: " << cap << endl;
cout << "Size of str is : " << str.size()
<< endl;
cout << "Length of str is : " << str.length()
<< endl;
return 0;
}
OUTPUT:
// Capacity of str is: 32
// Size of str is : 29
// Length of str is : 29
// Resize the str for 50 character
// Capacity of str is: 64
// Size of str is : 50
// Length of str is : 50
compare 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str1 = "string";
string str2 = "String";
string str3 = "second string";
char ch[] = "first string";
cout << "string str1 is : " << str1 << endl;
cout << "string str2 is : " << str2 << endl;
cout << "char ary ch is : " << ch << endl;
cout << "string str3 is : " << str3 << endl;
cout << endl;
// compare str1 and str2
cout << "1." << endl;
size_t comp = str1.compare(str2);
cout << "String str1 is ";
( comp == 0 ) ? cout << "equal" : cout
<< "not equal";
cout << " to string str2" << endl;
// compare str1 and literal string "string"
cout << "2." << endl;
comp = str1.compare("string");
cout << "String str1 is ";
( comp == 0 ) ? cout << "equal" : cout
<< "not equal";
cout << " to array of char \"string\"" << endl;
// 3. and 4. doesn't work with Microsoft
// Visual Studio compiler
// compare str3 start from pos 7 to 5
// with str1
cout << "3." << endl;
comp = str3.compare(str1,7,5);
cout << "Part of string str3 is ";
( comp == 0 ) ? cout << "equal" : cout
<< "not equal";
cout << " to str1" << endl;
// compare str3 start from pos 7
// with literal string "string"
cout << "4." << endl;
comp = str3.compare("string",7);
cout << "Part of string str3 is ";
( comp == 0 ) ? cout << "equal" : cout
<< "not equal";
cout << " to C string \"string\"" << endl;
// next 4 'compare' functions
// doesn't work with GNU compiler
cout << "5." << endl;
comp = str1.compare(6,10,ch);
cout << "String str1 is ";
( comp == 0 ) ? cout << "equal" : cout
<< "not equal";
cout << " to part of char ary \"first string\""
<< endl;
cout << "6." << endl;
comp = str1.compare(0,3,str3);
cout << "Part of str1 is ";
( comp == 0 ) ? cout << "equal" : cout
<< "not equal";
cout << " to string \"second string\""
<< endl;
cout << "7." << endl;
comp = str1.compare(1,3,str2,1,3);
cout << "String str1 is ";
( comp == 0 ) ? cout << "equal" : cout
<< "not equal";
cout << " to part of string \"second string\""
<< endl;
cout << "8." << endl;
comp = str1.compare(1,3,str2,1,3);
cout << "String str1 is ";
( comp == 0 ) ? cout << "equal" : cout
<< "not equal";
cout << " to part of string \"second string\""
<< endl;
return 0;
}
OUTPUT: GNU compiler
// string str1 is : string
// string str2 is : String
// char ary ch is : first string
// string str3 is : second string
//
// 1.
// String str1 is not equal to string str2
// 2.
// String str1 is equal to array of char "string"
// 3.
// Part of string str3 is equal to str1
// 4.
// Part of string str3 is equal to C string "string"
// 5.
// 6.
// 7.
// 8.
OUTPUT: Microsoft Visual Studio compiler
// string str1 is : string
// string str2 is : String
// char ary ch is : first string
// string str3 is : second string
//
// 1.
// String str1 is not equal to string str2
// 2.
// String str1 is equal to array of char "string"
// 3.
// 4.
// 5.
// String str1 is not equal to part of char ary "first
// string"
// 6.
// Part of str1 is not equal to string "second string"
// 7.
// String str1 is equal to part of string "second string"
// 8.
// String str1 is equal to part of string "second string"
// Press any key to continue
copy 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "First Name: Robert";
char fname[255];
cout << "str is: " << str << endl;
int n = str.find(':');
str.copy(fname, // copy to array
n+1, // how many char
0); // start position from str
// must terminate fname with '\0';
fname[n+1] = 0;
cout << "fname is: " << fname << endl;
return 0;
}
OUTPUT:
// str is: First Name: Robert
// fname is: First Name:
empty 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "*******";
while ( ! str.empty() )
{
cout << str << endl;
str.erase(str.end()-1);
}
cout << endl;
return 0;
}
OUTPUT:
// *******
// ******
// *****
// ****
// ***
// **
// *
end 1.
// returns an iterator porsitioned immediately
// after the last character in string
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string s;
string str = "*************************";
size_t pos = str.length();
while ( pos )
{
s.assign ( str.begin(),str.end() - pos+1);
cout << s << endl;
pos -= 5;
}
return 0;
}
OUTPUT:
// *
// ******
// ***********
// ****************
// *********************
erase 1.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main ()
{
string str, s;
for ( char ch = 'a'; ch <= 'z'; ch++ )
str.append(1,ch);
s = str;
cout << "str is: " << str << endl;
cout << "s is: " << str << endl;
// removes 13 characters from the beginning
str.erase(0,13);
cout << "Erased range fron str : " << str << endl;
// removes 13 characters starts from 14
str = s.erase(13,13);
cout << "Erased range from s : " << str << endl;
// removes one character pointed by s.begin()
cout << endl << "Erase one, second character from s"
<< endl;
s.erase(s.begin()+1);
cout << "s is: " << s << endl;
// removes range of characters
s.erase(s.begin(),s.begin()+4);
cout << "s is: " << s << endl;
return 0;
}
OUTPUT:
// str is: abcdefghijklmnopqrstuvwxyz
// s is: abcdefghijklmnopqrstuvwxyz
// Erased range fron str : nopqrstuvwxyz
// Erased range from s : abcdefghijklm
//
// Erase one, second character from s
// s is: acdefghijklm
// s is: fghijklm
find 1.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main ()
{
string str("C++ is best language");
int pos1, pos2; // size_t or size_type
// work not correct
// search for first string "best" inside of str
// default position is 0
pos1 = str.find ("best");
cout << "Word best is found on position " << pos1+1
<< endl;
// if pattern is not found - return -1
pos2 = str.find ("best",pos1+1);
cout << "Word best is found on position " << pos2+1
<< endl;
// search for first occurrence of character
pos1 = str.find('g');
cout << "First character 'g' found on position "
<< pos1
<< endl;
// search for first occurrence of string
string s = "is";
pos1 = str.find (s);
cout << "Word 'is' is found on position " << pos1+1
<< endl;
return 0;
}
OUTPUT:
// Word best is found on position 8
// Word best is found on position 0
// First character 'g' found on position 15
// Word 'is' is found on position 5
find_first_not_of 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str("C++ is best language");
cout << "str is: " << str << endl;
int n = str.find_first_not_of("aeiouAEIOU");
cout << "First consonant found at " << n+1
<< " position" << endl;
return 0;
}
OUTPUT:
// str is: C++ is best language
// First consonant found at 1 position
find_first_not_of 2.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str("C++ is best language");
cout << "str is: " << str << endl;
// search first not ' ',
// start from position 7
int n = str.find_first_not_of(' ',7);
cout << "first not of space character "
<< "found at position " << n+1 << endl;
return 0;
}
OUTPUT:
// str is: C++ is best language
// first not of space character found at position 8
find_first_not_of 3.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str("C++ is best language");
string s = "C++";
cout << "str is: " << str << endl;
// search character from pattern
// using the first x chåracters in pattern.
// the value position must be given
int n = str.find_first_not_of("CBCD",0,3);
cout << "first not 'C' is found at position "
<< n+1 << endl;
// search first not of
// pattern is string
n = str.find_first_not_of(s);
cout << "first not of C++ is found "
<< "at position " << n+1 << endl;
return 0;
}
OUTPUT:
// str is: C++ is best language
// first not 'C' is found at position 2
// first not of C++ is found at position 4
find_first_of 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str("C++ is best language");
string s = "be";
cout << "str is: " << str << endl;
// search be start from position 2
// if position is ommited - default is 0
int n = str.find_first_of(s,2);
cout << "first 'be' found at position "
<< n+1 << endl;
// same as above but search for character
n = str.find_first_of('l');
cout << "first character 'l' found at "
<< "position " << n+1 << endl;
// search 'first of' for the characters in
// charary
char charary[] = " bea";
cout << "charary[] = \" bea\"" << endl;
n = str.find_first_of(charary,0);
cout << "first character from charary "
<< "found at position " << n+1 << endl;
cout << "Note: position 4 is space" << endl;
// same as above but third argumen is
// number of character from which searching
// starts
// this variant of find_first_of dosn't
// work properly with GNU compiler
n = str.find_first_of(" bae",0,3);
cout << "first character from charary "
<< "found at position " << n+1 << endl;
return 0;
}
OUTPUT:
// str is: C++ is best language
// first 'be' found at position 8
// first character 'l' found at position 13
// charary[] = " bea"
// first character from charary found at position 4
// Note: position 4 is space
// first character from charary found at position 4
find_last_not_of 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str("C++ is best language");
string s = "langue";
int pos = str.length()-1;
cout << "str is: " << str << endl;
// returns the highest position <= pos of a character
// in str that does not match any charcter in s;
// returns nopos if there is no such position:
// npos is the default value for pos
int n = str.find_last_not_of(s, pos);
cout << "last_not_of 'langue' found at position "
<< n+1 << endl;
// same as above but search for single character
n = str.find_last_not_of('e');
cout << "last_not_of 'e' found at position "
<< n+1 << endl;
char ary[] = "be";
// seawrch for occurence last_not_of
// from pattern ary in str
n = str.find_last_not_of(ary);
cout << "last_not_of 'be' found at position "
<< n+1 << endl;
return 0;
}
OUTPUT:
// str is: C++ is best language
// last_not_of 'langue' found at position 12
// last_not_of 'e' found at position 19
// last_not_of 'be' found at position 19
find_last_of 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str("C++ is best language");
string s = "g";
cout << "str is: " << str << endl;
cout << "s is: " << s << endl;
int n = str.find_last_of(s);
cout << "last_of '" << s << "' faund"
<< " at position " << n+1 << endl;
n = str.find_last_of(' ');
cout << "last_of ' ' faund"
<< " at position " << n+1 << endl;
n = str.find_last_of(" la");
cout << "last_of \" la\" faund"
<< " at position " << n+1 << endl;
return 0;
}
OUTPUT:
// str is: C++ is best language
// s is: g
// last_of 'g' faund at position 19
// last_of ' ' faund at position 12
// last_of " la" faund at position 18
insert 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "C++ language";
string s = "is best";
char ch[] = "C++ language";
cout << "str is: " << str << endl;
cout << "s is: " << s << endl;
cout << "ch is: " << s << endl;
// insert a copy of s into str
// at position pos;
string::size_type pos = 4;
str.insert(pos,s);
cout << "str is: " << str << endl;
// insert a copy of ch into str at
// the position specified by iterator
// return an iterator positioned at
// this copy
int n = str.find('l');
str.insert(str.begin() + n,' ');
cout << "str is: " << str << endl;
// like above but n x copies of char
str.insert(str.end(),3,'!');
cout << "str is: " << str << endl;
// insert 4 char from ch into s
// at the position 0
s.insert(0,ch,4);
cout << "s is: " << s << endl;
// insert 8 characters from str
// start from position n ('langu...')
// into s at position x (end string)
n = str.find('l');
int x = s.length();
s.insert(x,str,n,8);
cout << "s is: " << s << endl;
n = s.find('l');
s.insert(s.begin()+n,' ');
cout << "s is: " << s << endl;
// insert range (begin - begin+7) of str
// into s at position begin+4
s.insert(s.begin()+4,str.begin(),str.begin()+7);
cout << "s is: " << s << endl;
return 0;
}
OUTPUT:
// str is: C++ language
// s is: is best
// ch is: is best
// str is: C++ is bestlanguage
// str is: C++ is best language
// str is: C++ is best language!!!
// s is: C++ is best
// s is: C++ is bestlanguage
// s is: C++ is best language
// s is: C++ C++ is is best language
length 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "C++ is best computer language";
cout << "str is: " << str << endl;
cout << "Length of str is : "
<< str.length() << endl;
return 0;
}
OUTPUT:
// str is: C++ is best computer language
// Length of str is : 29
max_size 1.
// returns a reverse iterator positioned
// at the last character in string
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "C++ is best computer language";
cout << "str is: " << str << endl;
cout << "max_size of str is: "
<< str.max_size() << endl;
return 0;
}
OUTPUT:
// str is: C++ is best computer language
// max_size of str is: 4294967294
rbegin 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "C++ is best computer language";
cout << "str is: " << str << endl;
// usual iterator doesn't work
string::reverse_iterator It = str.rbegin();
while ( It != str.rend() )
cout << *It++;
cout << endl;
return 0;
}
OUTPUT:
// str is: C++ is best computer language
// egaugnal retupmoc tseb si ++C
replace 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "STL is created from Dennis Ritchie";
string s1 = "was";
string s2 = "developed";
string s3 = "Stepanov alexander";
cout << "str is: " << str << endl;
cout << "replace 'is' for 'was'" << endl;
str.replace(4, // start position in str
2, // how many characters
s1); // source for replasment
cout << "str is: " << str << endl;
cout <<"replace 'created' for 'developed'" << endl;
int n = str.find('c'); // pos of 'created'
int x = str.find("from") -1;
str.replace(str.begin()+n,// start pointer
str.begin()+x, // end pointer
s2); // source
cout << "str is: " << str << endl;
cout << "replace 'Dennis' for 'alexander'" << endl;
int x1 = str.find('D'); // search Dennis
int x2 = str.find(' ',x1+1); // space after
int y1 = s3.find("alex"); // search 'alex'
int y2 = strlen("alexander");
str.replace(x1, // start position in str
x2-x1, // how characters to replace
s3, // source for replacement
y1, // start positio from source
y2); // how chracter start from y1
cout << "str is: " << str << endl;
cout << "replace 'from' for 'by'" << endl;
char ary[] = "bytes";
n = str.find("from");
// same variant possible with iterators
// instead of number of position
str.replace(n, // start position in str
4, // how many characters
ary, // source
2); // first 2 characters from source
cout << "str is: " << str << endl;
cout << "replace 'a' for 'A' (alexander)" << endl;
n = str.find("alexander");
str.replace(n, // start position in str
1, // how character(s)
1, // how many copies of character
'A'); // character for replasment
cout << "str is: " << str << endl;
cout << "replace 'Ritchie' for 'Stepanov'" << endl;
x1 = str.find('R');
y1 = s3.find(' ');
str.replace(str.begin()+x1, // start pointer
str.end(), // to the end of str
s3.begin(), // start pointer from source
s3.begin()+y1 // end pointer from
); // source
cout << "str is: " << str << endl;
return 0;
}
OUTPUT:
// str is: STL is created from Dennis Ritchie
// replace 'is' for 'was'
// str is: STL was created from Dennis Ritchie
// replace 'created' for 'developed'
// str is: STL was developed from Dennis Ritchie
// replace 'Dennis' for 'alexander'
// str is: STL was developed from alexander Ritchie
// replace 'from' for 'by'
// str is: STL was developed by alexander Ritchie
// replace 'a' for 'A' (alexander)
// str is: STL was developed by Alexander Ritchie
// replace 'Ritchie' for 'Stepanov'
// str is: STL was developed by Alexander Stepanov
reverse 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "Anatoliy Urbanskiy";
cout << str.reverse() << endl;
return 0;
}
OUTPUT:
resize 1.
// if <=s.size(), truncates rightmost
// character in s to make it of size n; otherwise, adds
// copies of character ch to end of s to increase it size
// to n, or adds a default character value (usually a
// blank) if ch is omitted; return type is void
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "Alexander Stepanov";
cout << "str is: " << str << endl;
cout << "size of str is: "
<< str.size() << endl;
str.resize(11);
cout << "after str.resize(11)" << endl;
cout << "str is: " << str << endl;
cout << "size of str is: "
<< str.size() << endl;
str.resize(20,'.');
cout << "after str.resize(20,'.')" << endl;
cout << "str is: " << str << endl;
cout << "size of str is: "
<< str.size() << endl;
return 0;
}
OUTPUT:
// str is: Alexander Stepanov
// size of str is: 18
// after str.resize(11)
// str is: Alexander S
// size of str is: 11
// after str.resize(9,'.')
// str is: Alexander S.........
// size of str is: 20
rfind 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "We go step by step to the target";
string s1 = "step";
cout << "str is: " << str << endl;
cout << "s1 is: " << s1 << endl;
cout << "int n1 = str.find(s1)" << endl;
int n1 = str.find(s1);
cout << "n1 = " << n1+1 << endl;
cout << "int n2 = str.rfind(s1)" << endl;
int n2 = str.rfind(s1);
cout << "n2 = " << n2+1 << endl;
cout << "n3 = str.rfind(s1,n2-1)" << endl;
int n3 = str.rfind(s1,n2-1);
cout << "n3 = " << n3+1 << endl;
cout << "n1 = str.rfind('t')" << endl;
n1 = str.rfind('t');
cout << "n1 = " << n1+1 << endl;
cout << "n2 = str.rfind('t',n1-1)" << endl;
n2 = str.rfind('t',n1-1);
cout << "n2 = " << n2+1 << endl;
char ch[] = "step";
cout << "char ch[] = \"step\"" << endl;
cout << "n1 = str.rfind(ch)" << endl;
n1 = str.rfind(ch);
cout << "n1 = " << n1+1 << endl;
cout << "n2 = str.rfind(\"stabc\",10,2)" << endl;
n2 = str.rfind("stabc", // pattern
10, // start position
2); // for first 2 char
// in pattern
cout << "n2 = " << n2+1 << endl;
return 0;
}
OUTPUT:
// str is: We go step by step to the target
// s1 is: step
// int n1 = str.find(s1)
// n1 = 7
// int n2 = str.rfind(s1)
// n2 = 15
// n3 = str.rfind(s1,n2-1)
// n3 = 7
// n1 = str.rfind('t')
// n1 = 32
// n2 = str.rfind('t',n1-1)
// n2 = 27
// char ch[] = "step"
// n1 = str.rfind(ch)
// n1 = 15
// n2 = str.rfind("stabc",10,2)
// n2 = 7
size 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "We go step by step to the target";
string::size_type size = str.size();
cout << "str is: " << str << endl;
cout << "size of str = " << size << endl;
return 0;
}
OUTPUT:
// str is: We go step by step to the target
// size of str = 32
substr 1.
// str.subsr(pos,n);
// returns a copy of the substring consisting
// of n characters from str, beginning at position pos
// (default value 0); if n is too large or is omitted,
// characters are copied only until the end of s is
// reached
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str = "We go step by step to the target";
cout << "str is: " << str << endl;
int n = str.find("step");
string s = str.substr(n);
cout << "s is: " << s << endl;
s = str.substr(n,12);
cout << "s is: " << s << endl;
return 0;
}
OUTPUT:
// str is: We go step by step to the target
// s is: step by step to the target
// s is: step by step
swap 1.
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str1 = "Robert";
string str2 = "Forest";
cout << "str1 is: " << str1 << endl;
cout << "str2 is: " << str2 << endl;
cout << endl;
cout << "str1.swap(str2)" << endl;
cout << endl;
str1.swap(str2);
cout << "str1 is: " << str1 << endl;
cout << "str2 is: " << str2 << endl;
return 0;
}
OUTPUT:
// str1 is: Robert
// str2 is: Forest
//
// str1.swap(str2)
//
// str1 is: Forest
// str2 is: Robert