どうも、濱谷です。

VC++6.0 + SP4で以下の様なプログラムを作成しました。

#include <stdio.h>

#include <string>
using namespace std;

void main(void)
{
    string  strA;
    string  strB;

    strA = "ABCDE";
    strB = "ABCDE";

    if(strA == strB)
    {
        printf("同じ\n");
    }
}

で、このプログラムを動かすと、「同じ」と表示されるはずが、ifに引っかから
ずにプログラムが終了してしまいます。
ifの所を「if(strcmp(strA.c_str(), strB.c_str()) == 0)」
に書き換えると正常に動作しますので、代入する文字列は間違えていません。

アセンブルコードレベルで追いかけていくと,先頭から1文字づつ比較して、正
常に同じと判断されているようですが、printfが実行されません。

いつもというわけではなく、同じプログラムで現象が出たり出なかったりします。


何か回避方法をご存知の方、折られませんでしょうか。

------------------------------------------------------------
濱谷彰悟(ハマタニショウゴ)
E-MAIL s...@apec.co.jp
       s...@eurus.dti.ne.jp

アプライド・エンジニアリング株式会社
TEL 0792-22-7940  FAX 0792-22-7941