目前可以认为最高效的方式是调用:StrChrI
因为这是API,不是CRT函数。
由于相应的DLL早已经加载到内存,所以调用起来高效。
另,可参考: 常用字符串函数 1. 字符串比较函数 //比较两个字符串是否相同 int StrCmp(LPCTSTR lpStr1,LPCTSTR lpStr2); int StrCmpN(LPCTSTR lpStr1,LPCTSTR lpStr2,int nChar); int strcmp( const char *string1, const char *string2 ); int wcscmp( const wchar_t *string1, const wchar_t *string2 ); int CompareString(LCID Locale, DWORD dwCmpFlags, LPCTSTR lpString1, int cchCount1, LPCTSTR lpString2, int cchCount2); 2. 计算字符串长度 HRESULT StringCchLength( LPCTSTR psz,size_t cchMax,size_t *pcch); //replacement for strlen size_t strlen( const char *string ); size_t wcslen( const wchar_t *string ); 3. 字符串赋值函数 HRESULT StringCchCopy(LPTSTR pszDest,size_t cchDest,LPCTSTR pszSrc); //replacement for strcpy HRESULT StringCchCopyN(LPTSTR pszDest,size_t cchDest,LPCTSTR pszSrc,size_t cchSrc); //replacement for strncpy LPTSTR StrCpy(LPTSTR psz1,LPCTSTR psz2); //存在安全问题 LPTSTR StrCpyN(LPTSTR psz1,LPCTSTR psz2,int cchMax); //存在安全问题 char *strcpy( char *strDestination, const char *strSource ); wchar_t *wcscpy( wchar_t *strDestination, const wchar_t *strSource ); char *strncpy( char *strDest, const char *strSource, size_t count ); wchar_t *wcsncpy( wchar_t*strDest, const wchar_t *strSource, size_t count ); 4. 字符串连接函数 HRESULT StringCchCat( LPTSTR pszDest,size_t cchDest,LPCTSTR pszSrc); //replacement for strcat HRESULT StringCchCatN( LPTSTR pszDest,size_t cchDest,LPCTSTR pszSrc,size_t cchMaxAppend); //replacement for strncat LPTSTR StrCat( LPTSTR psz1,LPCTSTR psz2); //存在安全问题 LPTSTR StrNCat( LPTSTR pszFront,LPCTSTR pszBack,int cchMax); //存在安全问题 char *strcat( char *strDestination, const char *strSource ); wchar_t *wcscat( wchar_t *strDestination, const wchar_t *strSource ); char *strncat( char *strDest, const char *strSource, size_t count ); wchar_t *wcsncat( wchar_t *strDest, const wchar_t *strSource, size_t count ); 5. 字符查找函数 //查找字符串中指定字符第一次出现的位置 LPTSTR StrChr( LPCTSTR lpStart,TCHAR wMatch); //区分大小写 char *strchr( const char *string, int c ); wchar_t *wcschr( const wchar_t *string, wchar_t c ); LPTSTR StrChrI( LPCTSTR lpStart,TCHAR wMatch); //不区分大小写 //查找字符串中指定字符最后一次出现的位置 LPTSTR StrRChr( LPCTSTR lpStart,LPCTSTR lpEnd,TCHAR wMatch); //区分大小写 char *strrchr( const char*string, int c ); wchar *wcsrchr( const wchar_t *string, int c ); LPTSTR StrRChrI( LPCTSTR lpStart,LPCTSTR lpEnd,TCHAR wMatch); //不区分大小写 *注 StrRChr()函数可以通过StrChr()函数和while循环来实现。 补充: 查找字符串: _tcsstr(........) 字符串转化为double型数字 _tcstod( const char *nptr, char **endptr ) 字符串转化为double型整数(只取整数部分,不取小数)Convert strings to a long-integer value. _tcstoul ( const char *nptr, char **endptr, int base ) _tcstol ( const char *nptr, char **endptr, int base ) 取子字符串 Extracts a substring of length nCount characters from this CStringT object, starting at position iFirst (zero-based). CStringT Mid( int iFirst, int nCount ) const; CStringT Mid( int iFirst ) const; example: //typedef CStringT < TCHAR, StrTraitATL < TCHAR > > CAtlString; CAtlString s( _T("abcdef") ); _ASSERT( s.Mid( 2, 3 ) == _T("cde") );
可以参考下面内容
http://msdn.microsoft.com/en-us/library/bb759935%28VS.85%29.aspx