AfxExtractSubString
このグローバル関数が特定のソース文字列から部分文字列を抽出するために使用できます。
BOOL AFXAPI AfxExtractSubString (
CString& rString,
LPCTSTR lpszFullString,
int iSubString,
TCHAR chSep = '\n'
);
パラメーター
rString
- 個々の部分文字列を受け取る CString のオブジェクトへの参照。
lpszFullString
- 文字列から抽出する文字列の全文。
iSubString
- lpszFullStringから抽出する部分文字列のインデックス。
chSep
- 部分文字列を区切るために使用する区切り記号。
戻り値
関数を指定されたインデックスに部分文字列を抽出TRUE ; それ以外 FALSE。
解説
この関数は、既知の単一の文字が各部分文字列を区切ると、ソース文字列から複数の部分文字列を抽出するために役立ちます。この関数は lpszFullString パラメーターの先頭から呼び出されるたびに取得します。
この関数は、指定された区切り記号の +1 の発生 lpszFullString が NULL に設定されているか、関数が iSubStringを取得 lpszFullString の最後に到達した場合は false を返します。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>