Compartilhar via


AfxExtractSubString

Essa função global pode ser usada para extrair uma subcadeia de caracteres de uma cadeia de caracteres de origem especificada.

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

Parâmetros

  • rString

    • Referência a um objeto de CString que recebe uma subcadeia de caracteres individual.
  • lpszFullString

    • Cadeia de caracteres que contém o texto completo da cadeia de caracteres para extrair do.
  • iSubString

    • Índice de base zero da subcadeia de caracteres a extração de lpszFullString.
  • chSep

    • Caractere de separador usado para limitar subcadeia de caracteres.

Valor de retorno

Verdadeiro se a função extraiu com êxito a subcadeia de caracteres no índice fornecido; caso contrário, Falso.

Comentários

Essa função é útil para extrair vários subcadeia de caracteres de uma cadeia de caracteres de origem quando um único caractere conhecido separa cada subcadeia de caracteres. Essa função pesquisa desde o início do parâmetro de lpszFullString cada vez que é chamada.

Esta função retornará FALSE se ou lpszFullString está definido como nulo ou a função atingir o final de lpszFullString sem localizar iSubString+1 ocorrências de caractere do separador especificado. O parâmetro de rString não será alterado do seu valor original se lpszFullString foi definido como nulo; caso contrário, o parâmetro de rString é definido como a cadeia de caracteres vazia se a subcadeia de caracteres não pôde ser extraídos para o índice especificado.

Exemplo

// 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);
}

Requisitos

Cabeçalho: <afxwin.h>

Consulte também

Conceitos

Macros e globais MFC

Outros recursos

Usando CString