2012-07-02 1 views
0

Как я могу найти позицию конца CString? Я пытаюсь использоватьПолучение конечной позиции CString

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

но он возвращает -1. Я хочу, в частности, получить подстроку из CString с некоторой позиции в CString до конца. Проблема в том, что я не могу получить позицию конца. Любое предложение?

+2

Не каждая строка заканчивается на '\ n'. С 'CString.GetLength()' вы можете получить длину строки, которая также является концом строки. – RedX

+0

Не только строки не заканчиваются на \ n, они могут содержать любое число \ n. например "Hello \ nWorld \ п". Какую CString вы используете? См .: http://www.cplusplus.com/reference/clibrary/cstring/ –

ответ

2

Использовать CString::Mid(beginPos), as CString sub = str.Mid(begin). Он вернет подстроку, начинающуюся с beginPos и протянутую до конца строки. Если вам нужна длина строки, используйте GetLength. Поиск '\n' бессмыслен, поскольку он может быть не в строке, и если это произойдет, это может быть не в конце этой строки.

0

Поиск символа L'\n' выполняет поиск разрыва строки, а не «конец» строки. Не поддерживает ли CString метод size() или length(), который вы можете использовать для получения общей длины, которая может использоваться для вычисления длины требуемой подстроки?

0

Во-первых, строка имеет нулевое завершение, поэтому по крайней мере вы должны найти «\ 0» вместо «\ n».

Фактически, вы можете проверить размер строки и уменьшить ее на 1, и это позиция индекса последнего символа.

 Смежные вопросы

  • Нет связанных вопросов^_^