Android 比较Cocos2d-x中的字符串时出错

Android 比较Cocos2d-x中的字符串时出错,android,c++,string,cocos2d-x,strcmp,Android,C++,String,Cocos2d X,Strcmp,我正在使用cocos2d-x创建一个Android游戏 我在另一个类中调用一个静态函数,该函数检查给定的用户名和密码是否正确。如果用户名和密码都正确,则函数返回字符串“yes”,否则返回“no” 然后比较字符串以决定下一步要做什么。我遇到的问题是,在CCLOG中,它打印的响应是“yes”,但是if分支不执行,即strcmp(result.c_str(),“yes”)不返回true,但CCLOG打印的结果是“yes” 这是我的密码: // LogInPage if (((CCMenuItemSpr

我正在使用cocos2d-x创建一个Android游戏

我在另一个类中调用一个静态函数,该函数检查给定的用户名和密码是否正确。如果用户名和密码都正确,则函数返回字符串“yes”,否则返回“no”

然后比较字符串以决定下一步要做什么。我遇到的问题是,在CCLOG中,它打印的响应是“yes”,但是if分支不执行,即strcmp(result.c_str(),“yes”)不返回true,但CCLOG打印的结果是“yes”

这是我的密码:

// LogInPage
if (((CCMenuItemSprite*) pSender)->getTag() == 0) {
    string username = string(m_pEditUsername->getText());
    string password = string(m_pEditPassword->getText());

    string result = SQLDatabase::logIn(username, password);
    CCLOG("RESULT IS %s", result.c_str());

    if (strcmp(result.c_str(), "yes") == 0) {
        CCLOG("IN IF BRANCH");
        CCDirector::sharedDirector()->replaceScene(PlayMultiplayerPage::scene());
    }
}
//静态登录功能

string SQLDatabase::logIn(string username, string password) {
    stringstream strm;
    strm << "http://****.net/select_functions.php?
function=logIn&username="
        << username << "&password=" << password;

CURL* curl;
CURLcode res;
string result;
curl = curl_easy_init();
string URL = strm.str();

if (curl) {
    curl_easy_setopt(curl, CURLOPT_URL, URL.c_str());
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Write_To_String);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &result);
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
    CCLOG("curl return code is %i", (int) res);
    CCLOG("response is \n %s", result.c_str());
}

return result;
}

你可以使用C++特定的函数。

如果那不起作用

 char * cstr = new char [str.length()+1];
 std::strcpy (cstr, str.c_str());

然后比较。

我以前也尝试过比较功能,但仍然不起作用。您提供的方法也不起作用。
结果
字符串中一定有一些不需要的字符。检查它的长度和其中的单个字符。打印出来的时候看起来还可以。
 char * cstr = new char [str.length()+1];
 std::strcpy (cstr, str.c_str());