AfxExtractSubString
此全局函数可用于从特定源字符串中提取子字符串。
BOOL AFXAPI AfxExtractSubString (
CString& rString,
LPCTSTR lpszFullString,
int iSubString,
TCHAR chSep = '\n'
);
参数
rString
- 对 CString 将得到一个单独的子字符串的对象。
lpszFullString
- 字符串包含字符串的全文提取自。
iSubString
- 提取的子字符串的从零开始的索引从 lpszFullString。
chSep
- 使用的分隔符分隔子字符串。
返回值
TRUE ,如果函数成功提取了该子字符串中提供的索引;否则, FALSE。
备注
,在已知的单个字符分隔每个子字符串时,此功能可用于提取多个子字符串可用于从源字符串。 ,每次调用,此功能搜索从最初 lpszFullString 参数。
此函数将返回 FALSE,则或 lpszFullString 设置为 NULL 或函数到达 lpszFullString 结束时,仍没有找到 iSubString指定的分隔符的 +1 个匹配项。 ,如果 lpszFullString 设置为 NULL, rString 参数不会从初始值修改;否则,因此,如果该子字符串不能为指定的索引,则会提取 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>