ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

stringのcompare

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となる。