VC++中CString里的find函数怎么使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++中CString里的find函数怎么使用相关的知识,希望对你有一定的参考价值。

CString::Find
  在一个较大的字符串中查找字符或子字符串
  int Find( TCHAR ch ) const;
  int Find( LPCTSTR lpszSub ) const;
  int Find( TCHAR ch, int nStart ) const;
  int Find( LPCTSTR lpszSub, int nStart ) const;

返回值
  返回此CString对象中与需要的子字符串或字符匹配的第一个字符的从零开始的索引;如果没有找到子字符串或字符则返回-1。

参数
  ch 要搜索的单个字符。
  lpszSub 要搜索的子字符串。
  nStart 字符串中开始搜索的字符的索引,如果是0,则是从头开始搜索。如果nStart不是0,则位于nStart之前的字符不包括在搜索之内。
  pstr 指向要搜索的字符串的指针

说明
  此成员函数用来在此字符串中搜索子字符串的第一个匹配的字符。函数的重载可以接收单个字符(类似于运行时函数strchr)和字符串(类似于strstr)。

示例
  //下面演示第一个例子
  // CString::Find( TCHAR ch )
  CString s( "abcdef" );
  int n = s.Find( 'c' ); // 结果 n = 2
  int f = s.Find( "de" ) ; // 结果 f = 3
  ASSERT( n == 2 );
  ASSERT( f == 3 );

  // 下面演示第二个例子
  // CString::Find(TCHAR ch,int nStart)
  CString str("The stars are aligned");
  int n = str.Find('e',2); //结果 n = 2

参考资料:http://baike.baidu.com/view/3068605.htm

参考技术A CString::Find

int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR lpszSub, int nStart ) const;

返回值:
返回此CString对象中与需要的子字符串或字符匹配的第一个字符的从零开始的索引;如果没有找到子字符串或字符则返回-1。

参数: ch 要搜索的单个字符。
lpszSub 要搜索的子字符串。
nStart 字符串中开始搜索的字符的索引,如果是0,则是从头开始搜索。如果nStart不是0,则位于nStart处的字符不包括在搜索之内。
pstr 指向要搜索的字符串的指针。

说明:
此成员函数用来在此字符串中搜索子字符串的第一个匹配的字符。函数的重载可以接收单个字符(类似于运行时函数strchr)和字符串(类似于strstr)。

示例:
//下面演示第一个例子
// CString::Find( TCHAR ch )
CString s( "abcdef" );
ASSERT( s.Find( 'c' ) == 2 );
ASSERT( s.Find( "de" ) == 3 );

// 下面演示第二个例子
// CString::Find(TCHAR ch,int nStart)
CString str("The stars are aligned");
int n = str.Find('e',5);
ASSERT(n == 12)
参考技术B   CString::Find
  在一个较大的字符串中查找字符或子字符串
  int Find( TCHAR ch ) const;
  int Find( LPCTSTR lpszSub ) const;
  int Find( TCHAR ch, int nStart ) const;
  int Find( LPCTSTR lpszSub, int nStart ) const;

  返回值
  返回此CString对象中与需要的子字符串或字符匹配的第一个字符的从零开始的索引;如果没有找到子字符串或字符则返回-1。

  参数
  ch 要搜索的单个字符。
  lpszSub 要搜索的子字符串。
  nStart 字符串中开始搜索的字符的索引,如果是0,则是从头开始搜索。如果nStart不是0,则位于nStart之前的字符不包括在搜索之内。
  pstr 指向要搜索的字符串的指针

  说明
  此成员函数用来在此字符串中搜索子字符串的第一个匹配的字符。函数的重载可以接收单个字符(类似于运行时函数strchr)和字符串(类似于strstr)。

  示例
  //下面演示第一个例子
  // CString::Find( TCHAR ch )
  CString s( "abcdef" );
  int n = s.Find( 'c' ); // 结果 n = 2
  int f = s.Find( "de" ) ; // 结果 f = 3
  ASSERT( n == 2 );
  ASSERT( f == 3 );

  // 下面演示第二个例子
  // CString::Find(TCHAR ch,int nStart)
  CString str("The stars are aligned");
  int n = str.Find('e',2); //结果 n = 2
参考技术C 共有四种形式:
第一种:int Find(TCHAR ch ) const //从下标为0的位置开始查找,查找一个字符
第二种:int Find(LPCTSTR lpszSub) const //从下标为0的位置开始查找,查找一串字符
第三种:int Find(TCHAR ch,int nStart) const //从下标为nStart的位置开始查找,查找一个字符
第四种:int Find(LPCTSTR pstr,int nStart) const //从下标为nStart的位置开始查找,查找一串字符,其中pstr为指向要查找的字符串的指针

VC2008如何将Cstring转成long型?

由于宽字符的问题,之前的atol,sscanf,_wtol都转不了,请问有什么函数可以将cstring转换成long?
记得之前有个类似于strscanf的函数可以转,但不记得准确的函数名。回复请贴真正可行的办法,谢谢!!
找到原因,原来是字符串是十六进制的所以转换不了,用_stscanf _T(%x)可以行,但用vc2008推荐用swscanf_s,说更安全。谢谢zxd.

参考技术A 如果不是宽字符的,用sscan,如果是宽字符,用_stscanf。例如:
CString str;
long int ldata;
str = _T("655350");
_stscanf(str, _T("%ld"), &ldata);本回答被提问者采纳

以上是关于VC++中CString里的find函数怎么使用的主要内容,如果未能解决你的问题,请参考以下文章

VC++中CString.Format函数的问题

关于CString类中的Find函数!

cstring头文件里的函数怎么用

VC++里printf();

VC中char*与cstring型的转换

vc中把CString变量赋值给一个char变量