2018年03月07日
《その324》 stringクラス(10)
string型文字列の compare による大きさの比較
compare関数は、文字列と文字列の大きさを比較します。
文字列が、比較対象の文字列より大きければ正の値を、等しければ 0 を、
小さければ負の値を返します。
#include <string>
#include <iostream>
using namespace std;
int main() {
// 【compare による文字列の大きさの比較】
int x;
cout << "------------\n";
// int compare(
// const string& str
// ) const;
// int compare(
// const char* s
// ) const;
string s0("abc");
string s1("aab");
const char* p = "aab";
char a[] = "bbc";
x = s0.compare(s1);
cout << x << '\n'; // 1
x = s0.compare(a);
cout << x << '\n'; // -1
x = s1.compare(p);
cout << x << "\n\n"; // 0
s0.assign("aaa");
s1.assign("aa");
string s2("aaaa");
x = s0.compare(s0);
cout << x << '\n'; // 0
x = s0.compare(s1);
cout << x << '\n'; // 1
x = s1.compare(s2);
cout << x << '\n'; // -1
cout << "------------\n";
// int compare(
// size_type pos1, // 検索開始位置
// size_type n1, // 検索する長さ
// const string& str2 // 比較対象
// ) const;
// int compare(
// size_type pos1,
// size_type n1,
// const char* s2
// ) const;
s0.assign("abcdef");
s1.assign("bcd");
p = "cdee";
x = s0.compare(1, 3, s1);
cout << x << '\n'; // 0
x = s0.compare(2, 3, p);
cout << x << '\n'; // -1
cout << "------------\n";
// int compare(
// size_type pos1,
// size_type n1,
// const string& str2,
// size_type pos2,
// size_type n2 = npos
// ) const;
s0.assign("STUVWX");
s1.assign("UVWW");
x = s0.compare(3, 2, s1, 1, 2);
cout << x << '\n'; // 0
x = s0.compare(3, 2, s1, 1);
cout << x << '\n'; // -1
cout << "------------\n";
// int compare(
// size_type pos1,
// size_type n1,
// const char* s2,
// size_type n2
// ) const;
s0.assign("pqrst");
p = "qrstu";
x = s0.compare(1, 4, p);
cout << x << '\n'; // -1
x = s0.compare(1, 4, p, 4);
cout << x << '\n'; // 0
x = s0.compare(1, 4, p, 3);
cout << x << '\n'; // 1
}
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7404847
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック