2012-07-02 38 views
0

如何找到CString結尾的位置?我正在嘗試獲取CString的結束位置

int end = str.Find(L'\n'); 

但它返回-1。我特別希望從CString中的某個位置得到一個CString的子字符串,直到它結束。問題是我無法得到最終的地位。任何建議?

+2

不是每個字符串都以'\ n'結尾。通過'CString.GetLength()'你可以得到字符串的長度,這也是字符串的結尾。 – RedX

+0

不僅字符串不以\ n結尾,它們可能包含任意數量的\ n。例如「你好\ nWorld \ n」。你在使用哪個CString?請參閱:http://www.cplusplus.com/reference/clibrary/cstring/ –

回答

2

使用CString::Mid(beginPos),作爲CString sub = str.Mid(begin)。它將返回從beginPos開始的子字符串,並一直延伸到字符串的末尾。如果您確實需要字符串的長度,請使用GetLength。搜索'\n'是毫無意義的,因爲它可能不在字符串中,如果它確實存在,它可能不在該字符串的末尾。

0

查找字符L'\n'搜索換行而不是字符串的'結尾'。 CString是否支持size()或length()方法,您可以使用它獲取可用於計算所需子字符串長度的總長度。

0

首先,字符串是零終止的,所以至少你應該找到'\ 0'而不是'\ n'。

事實上,你應該檢查字符串的大小並減少1,這就是最後一個字符的索引位置。