stringで文字列の比較を行う場合には==や<といった演算子を使うことができる。しかし文字列の一部分だけを比較したい場合にはcompare()関数を使う。戻り値はCのstrcmpと同じようなもの。
int string.compare( start, num, string2, start2, num2 );
この場合、stringのstart位置からnum文字とstring2のstart2位置からnum2文字を比較する。
#include <iostream> #include <string> using namespace std; int main() { string str1("This is a Test."); string str2("It is a Test."); if ( str1.compare( 5, 4, str2, 3, 4 ) == 0 ) cout << "equal" << endl; else cout << "not equal" << endl; }
このプログラムの場合、両方のis aの部分を比較しており、出力結果はequalとなる。