如何找到CString結尾的位置?我正在嘗試獲取CString的結束位置
int end = str.Find(L'\n');
但它返回-1。我特別希望從CString中的某個位置得到一個CString的子字符串,直到它結束。問題是我無法得到最終的地位。任何建議?
如何找到CString結尾的位置?我正在嘗試獲取CString的結束位置
int end = str.Find(L'\n');
但它返回-1。我特別希望從CString中的某個位置得到一個CString的子字符串,直到它結束。問題是我無法得到最終的地位。任何建議?
使用CString::Mid(beginPos)
,作爲CString sub = str.Mid(begin)
。它將返回從beginPos
開始的子字符串,並一直延伸到字符串的末尾。如果您確實需要字符串的長度,請使用GetLength
。搜索'\n'
是毫無意義的,因爲它可能不在字符串中,如果它確實存在,它可能不在該字符串的末尾。
查找字符L'\n'
搜索換行而不是字符串的'結尾'。 CString是否支持size()或length()方法,您可以使用它獲取可用於計算所需子字符串長度的總長度。
首先,字符串是零終止的,所以至少你應該找到'\ 0'而不是'\ n'。
事實上,你應該檢查字符串的大小並減少1,這就是最後一個字符的索引位置。
不是每個字符串都以'\ n'結尾。通過'CString.GetLength()'你可以得到字符串的長度,這也是字符串的結尾。 – RedX
不僅字符串不以\ n結尾,它們可能包含任意數量的\ n。例如「你好\ nWorld \ n」。你在使用哪個CString?請參閱:http://www.cplusplus.com/reference/clibrary/cstring/ –