Поделиться через


AfxExtractSubString

Эту глобальную функцию можно использовать для извлечения подмассив из заданных строк источника.

BOOL AFXAPI AfxExtractSubString ( 
   CString& rString, 
   LPCTSTR lpszFullString, 
   int iSubString, 
   TCHAR chSep = '\n' 
);

Параметры

  • rString

    • Ссылка на объект в CString, получающего отдельную подстроку.
  • lpszFullString

    • Строка, содержащая полный текст строки для извлечения из.
  • iSubString

    • Начинающийся с нуля индекс подстроки, которые следует извлечь из lpszFullString.
  • chSep

    • Разделитель, используемый для разделения подстроки.

Возвращаемое значение

если функция TRUE успешно извлекала подстрока, заданного в индексе; в противном случае — значение ЛОЖЬ.

Заметки

Эта функция полезна для извлечения несколько подстрок из строки источника при известный символ отделяет каждую подстроку. Поиск этой функции с начала параметра lpszFullString каждый раз, когда он вызывается.

Эта функция возвращает ЛОЖНОЕ если или lpszFullString равно NULL или функция достигает конца lpszFullString и не находит вхождения указанного iSubString+1 разделитель. Параметр rString не будет изменен на основе исходные значения, если lpszFullString была установлена в NULL; в противном случае параметр rString равно пустой строке, если подстрока не может быть извлекана для указанного индекса.

Пример

// The following example extracts a series of name, value pairs from a 
// given source string: 

// Input string consisting of a number of name, value pairs
LPCTSTR lpszSource = _T("\"Name\"=\"John Smith\"\n")
   _T("\"Company\"=\"Contoso, Ltd\"\n\"Salary\"=\"25,000\"");

CString strNameValue; // an individual name, value pair 

int i = 0; // substring index to extract 
while (AfxExtractSubString(strNameValue, lpszSource, i))
{
   // Prepare to move to the next substring
   i++;

   CString strName, strValue; // individual name and value elements 

   // Attempt to extract the name element from the pair 
   if (!AfxExtractSubString(strName, strNameValue, 0, _T('=')))
   {
      // Pass an error message to the debugger for display
      OutputDebugString(_T("Error extracting name\r\n"));
      continue;
   }

   // Attempt to extract the value element from the pair 
   if (!AfxExtractSubString(strValue, strNameValue, 1, _T('=')))
   {
      // Pass an error message to the debugger for display
      OutputDebugString(_T("Error extracting value element\r\n"));
      continue;
   }

   // Pass the name, value pair to the debugger for display
   CString strOutput = strName + _T(" equals ") + strValue + _T("\r\n");
   OutputDebugString(strOutput);
}

Требования

Заголовок: <afxwin.h>

См. также

Основные понятия

Макросы и глобальные объекты MFC

Другие ресурсы

Использование CString