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
ソース2行目、list1はlistの間違いでした。
if ( list.front() == mozi ) { ... }
でいけますよ。
ただ、文字操作ならばstd::stringを使用されるほうがよいかと。
std::string s = "E";
char mozi = 'E';
if ( s[0] == mozi ) { ... }
でも問題ありませんし。
迅速なご回答、ありがとうございました。
CStringであれば、==で比較できると考えていたのですが、
charの場合、文字の比較はstrcmpを使わなければいけないという
固定概念にとらわれていたようです。
本当にありがとうございました。
文字の比較でstrcmpを使ってはいけない。
ツイート | ![]() |