从母串中查找一个子串的函数
size_t strcspn( const char *string, const char *strCharSet );
size_t wcscspn( const wchar_t *string, const wchar_t *strCharSet );
实际上,wcscspn和strcspn的返回的是子串的任意一个字符(而不是子串整个匹配)在母串中第一次出现的位置。
void Func( void )
{
TCHAR* str1 = _T("qq is 123456");
TCHAR* str2 = _T("3q");
int i = wcscspn(str1, str2);
TCHAR show[30];
wsprintf(show, _T("The Result is %d"), i);
MessageBox(NULL, show, _T("test"), 0);
}
输出结果是0,先发现q能够匹配。
如果稍作改动:
void Func( void )
{
TCHAR* str1 = _T("qq is 123456");
TCHAR* str2 = _T("3Q");
int i = wcscspn(str1, str2);
TCHAR show[30];
wsprintf(show, _T("The Result is %d"), i);
MessageBox(NULL, show, _T("test"), 0);
}
输出结果是8,发现3能够匹配。
如果需要在母串中查找子串(完整的),那么可以使用另外一类函数:
char *strstr( const char *string, const char *strCharSet );
wchar_t *wcsstr( const wchar_t *string, const wchar_t *strCharSet );
他们能够返回子串在母串中第一次出现的位置。