list内の文字を比較するには?

解決


エドモンド  2009-03-23 20:32:39  No: 69858  IP: [192.*.*.*]

list内の文字を比較したいと思っております。

list<char> list;

list1.push_back('E');
char mozi = 'E';

char* a = (char*)list1.front();
int hikaku = strcmp(a, (char*)mozi);

上記ソースですが、
char* a = (char*)list1.front();
の箇所でうまくいってないようです。
list内の文字は比較することができないのでしょうか。
よろしくお願いいたします。

環境:
Visual Studio 2005

編集 削除
エドモンド  2009-03-23 20:34:13  No: 69859  IP: [192.*.*.*]

ソース2行目、list1はlistの間違いでした。

編集 削除
DD.  2009-03-23 21:17:22  No: 69860  IP: [192.*.*.*]

if ( list.front() == mozi ) { ... }
でいけますよ。

ただ、文字操作ならばstd::stringを使用されるほうがよいかと。
std::string s = "E";
char mozi = 'E';

if ( s[0] == mozi ) { ... }
でも問題ありませんし。

編集 削除
エドモンド  2009-03-23 21:24:20  No: 69861  IP: [192.*.*.*]

迅速なご回答、ありがとうございました。

CStringであれば、==で比較できると考えていたのですが、
charの場合、文字の比較はstrcmpを使わなければいけないという
固定概念にとらわれていたようです。

本当にありがとうございました。

編集 削除
a  2009-03-24 08:07:03  No: 69862  IP: [192.*.*.*]

文字の比較でstrcmpを使ってはいけない。

編集 削除