【C++】STLコンテナ - 文字列操作⑧ (文字列関連アルゴリズム | 文字列変換 - std::transform関数 | 文字列反転 - std::reverse関数)






1.文字列変換 - std::transform関数



1. std::transform 関数のプロトタイプの説明


C++ std::transform 関数は、

std コマンド スペースの transform 関数は、STL コンテナの指定された範囲の内容を変換するために使用されます。

指定されたパラメーターに従って、この関数はソース文字列から文字を抽出し、指定された形式に従って変換して、新しい文字列を返すことができます。

template< class InputIt, class OutputIt, class UnaryOperation >  
OutputIt transform( InputIt first, InputIt last, OutputIt d_first, UnaryOperation unary_op );  
  
template< class InputIt1, class InputIt2, class OutputIt, class BinaryOperation >  
OutputIt transform( InputIt1 first1, InputIt1 last1, InputIt2 first2, OutputIt d_first, BinaryOperation binary_op );

パラメータの説明:

  • first: 入力範囲の開始反復子。変換される要素の範囲を示します。
  • last: 入力範囲の終端反復子。変換される要素の範囲を示します。
  • d_first: 出力範囲の開始反復子。変換された要素が書き込まれる範囲を示します。
  • unary_op 単項演算関数オブジェクト: 入力範囲内の各要素を変換するために使用されます。
  • binary_op 二項演算関数オブジェクト: 入力範囲 1 の要素と入力範囲 2 の要素を結合して変換するために使用されます。

操作関数オブジェクト:

  • toupper: 文字列を大文字に変換します。
  • to lower: 文字列を小文字に変換します。

2. コード例 - 文字列クラスの変換関数の変換


コード例:

#include "iostream"
using namespace std;
#include "string"
#include "algorithm"

int main() {
    
    

	string s1 = "Tom And Jerry";

	// 将字符串转为大写字母
	transform(s1.begin(), s1.end(), s1.begin(), toupper);
	// 打印 s1值
	cout << "s1 = " << s1 << endl;

	// 将字符串转为小写字母
	transform(s1.begin(), s1.end(), s1.begin(), tolower);
	// 打印 s1值
	cout << "s1 = " << s1 << endl;


	// 控制台暂停 , 按任意键继续向后执行
	system("pause");

	return 0;
};

の結果:

s1 = トムとジェリー
s1 = トムとジェリー
続行するには任意のキーを押してください。 . .

ここに画像の説明を挿入します





2. 文字列文字列反転 - std::reverse 関数



1. std::reverse 関数プロトタイプの説明


std::reverse<algorithm> ヘッダー ファイル内のアルゴリズム関数であり、特定の STL コンテナ範囲内の要素の順序を逆にするために使用されます。

std::reverse関数プロトタイプ:

template< class BidirectionalIt >  
void reverse( BidirectionalIt first, BidirectionalIt last );

パラメータの説明:

  • first : 反転する範囲の開始要素を指す双方向反復子。
  • last : 反転する範囲の終了要素を指す双方向反復子。

2. コード例 - std::reverse 関数


コード例:

#include "iostream"
using namespace std;
#include "string"
#include "algorithm"

int main() {
    
    

	string s1 = "Tom And Jerry";

	// 将字符串 翻转
	reverse(s1.begin(), s1.end());
	// 打印 s1值
	cout << "s1 = " << s1 << endl;


	// 控制台暂停 , 按任意键继续向后执行
	system("pause");

	return 0;
};

の結果:

s1 = yrreJ dnA moT
続行するには任意のキーを押してください。 . .

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/han1202012/article/details/135050238