C++/String/string replace

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Demonstrate insert(), erase(), and replace().

<source lang="cpp">

  1. include <iostream>
  2. include <string>

using namespace std;

int main() {

 string str1("A");
 string str2("B");
  
 cout << "Initial strings:\n";
 cout << "str1: " << str1 << endl;
 cout << "str2: " << str2 << "\n\n";
  
 str1.insert(6, str2);
 cout << str1 << "\n\n";
  
 str1.erase(6, 9);
 cout << str1 <<"\n\n";
  
 str1.replace(7, 8, str2);
 cout << str1 << endl;
  
 return 0;

}


 </source>


Replace all spaces with period

<source lang="cpp">

  1. include <iostream>

using std::cout; using std::endl;

  1. include <string>

using std::string; int main() {

  string string1( "abc edfgh ijk lmno pqr stu vw xyz" );
  
  cout << "Original string:\n" << string1 << endl << endl;
  int position = string1.find( " " ); // find first space
  // 
  while ( position != string::npos ) 
  {
     string1.replace( position, 1, "." );
     position = string1.find( " ", position + 1 );
  } 
  cout << string1 << "\n\nAfter second replacement:\n";
               
  return 0;

} /* Original string: abc edfgh ijk lmno pqr stu vw xyz abc.edfgh.ijk.lmno.pqr.stu.vw.xyz After second replacement:

*/        
   
 </source>


string.replace()

<source lang="cpp">

  1. include <iostream>
  2. include <string>

using namespace std; int main() {

 string str1("String handling C++ style.");
 string str2("STL Power");
 cout << "Initial strings:\n";
 cout << "str1: " << str1 << endl;
 cout << "str2: " << str2 << "\n\n";
 // demonstrate replace 
 cout << "Replace 8 characters in str1 with str2:\n";
 str1.replace(7, 8, str2);
 cout << str1 << endl;
 return 0;

}

/* 

Initial strings: str1: String handling C++ style. str2: STL Power Replace 8 characters in str1 with str2: String STL Power C++ style.

*/       
   
 </source>


string.replace( position, 2, ";123", 5, 2 )

<source lang="cpp">

  1. include <iostream>

using std::cout; using std::endl;

  1. include <string>

using std::string; int main() {

  string string1( "abc edfgh ijk lmno pqr stu vw xyz" );
  
  cout << "Original string:\n" << string1 << endl << endl;
  int position = string1.find( "." ); // find first period
  while ( position != string::npos )
  {
     string1.replace( position, 2, "12345;;123", 5, 2 );
     position = string1.find( ".", position + 1 );
  }
  cout << string1 << endl;
               
  return 0;

} /* Original string: abc edfgh ijk lmno pqr stu vw xyz abc edfgh ijk lmno pqr stu vw xyz

*/        
   
 </source>