我想從使用C++的CString
得到一個子字符串。爲此,我正在使用strstr
函數。但它不能在al工作strstr總是返回null
CString str = m_sectionDataList->GetNext(pos);
char* chToMatch = (char*)(LPCTSTR)str;
char *match = "=";
//char * sMatched = strstr(ch, match);
if (strstr(match, chToMatch) != NULL) {
MessageBox(NULL, str, L"Done", 1);
}
您需要強制轉換'str'有點令人擔心,您是否啓用了UNICODE?然後'LPCTSTR'是一個* wide *字符串,你不能使用'strstr'。 –
你應該避免使用C風格的演員。我不確定'CString'是否有一個產生LPCTSTR的轉換運算符;但如果沒有,那麼你的代碼會導致未定義的行爲。而是寫'char * chToMatch = static_cast(str);'。如果這給出了一個編譯錯誤,那麼這意味着你的代碼已經被破壞了,只是你現在要求編譯器檢測它是否被破壞了。 –
爲什麼不使用['CString :: Find'](https://msdn.microsoft.com/en-us/library/aa314323%28v=vs.60%29.aspx)? –