Sunday, August 17, 2008

String Class in cpp(Standard cpp strings)

Here is how to test the string class already present in cpp.
To use simple strings u have to include <iostream>. For example consider the program,
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    string word="hello";
    cout<<word;
    getch();
   
}

There are various functions and operators in this string class. These operators are present in string -
=        assignment
+ , +=  concatenation etc
 == , != . < , <= , >= , >   equality etc.
[]       subscription
<<     output
>>     input

Following are the functions which are present in the string class

Consider the program:
#include <iostream>
#include <conio.h>
using namespace std;
int main( )
{
    string s1 ( "kicit" ) ;
    string s2 ( "Nagpur" ) ;

    cout << endl ;
    cout << "String s1: " ;
    cout<<s1;
    cout << "\nLength of string s1: " << s1.length( ) << endl ;

    cout << "\nString s2: " ;
    cout<<s2;

    string s3 = s1;// copy
    cout<<"\ns3="<<s3;

    s3=s3+s1;
    cout << "\nString s3 after concatenation: " ;
    cout<<s3;

    if ( s1.compare(s2)== 0 )
        cout << "\nThe strings s1 and s2 are similar" << endl ;
    else
        cout << "\nThe strings s1 and s2 are not similar" << endl ;
        getch();
}



Some more cases of string:
string s1;                                    //s1 contains 0 character
string s2 =  "New York";            
//s1 contains 8 character
string s3(60,'*');                          //s1 contains 60 asterisk
string s4=s3;                             //s1 contains 60 asterisk
string s5(s2, 4,2);                      //s1 contains 2 characters , i.e. "Yo"
Some more:
string s= "ABCDEFG";
getline(s,cin);           // reads the entire string with spaces into s
char c = s[2];           // c = C;
s[4]='*';                   //s= "ABCD*FG";

const char * cs = s.c_str();   // CONVERT s TO C STRING

Using find, substr(), erase() and replace
s6=s+"HIJK";
s4= s6.substr();
s6.erase(4, 2);
s6.replace(5,2,  "xyz")
s6 = "Missisippi River";












hello i am not hter
constructors 1.


#include
#include
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
#include
#include
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
#include
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
#include
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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
#include
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

No comments:

Post a Comment