CString截取字符串

例程1 

文件xxxx.dll去掉后面的.dll 
方法1
 

char str[] = "xxxx.dll" 
char *p; 
p=strrchr(str, '.'); 
*p = 0; 

方法 2 
CString str="xxxx.dll"; 
int n = str.ReverseFind('.') 
str = str.Left(str.GetLength()-n-1); 
例程2  
取得一个字符串中第一个 '?'号之前的字符
 
方法

CString m_char,m_disp; 
m_disp="jadfueiuajdf?"; 
m_char="?"; 
if (!m_char.IsEmpty()) 
{ 
int index = m_disp.Find(m_char); 
m_disp = m_disp.Right(m_disp.GetLength()-index-1); 
} 
返回m_disp就行
 
方法

CString temp=the.m_bb; 
CString reslut=temp.Left(temp.Find("?")-1); 
例程3

一个CString类对象
m_StrReceiveModem={ATS0=2 OK $03#} 
如何截取从$开始的字符串
 
方法

CString m_StrReceiveModem; 
int nPos = m_StrReceiveModem.Find('$'); 
if(nPos >= 0) 
{ 
CString sSubStr = m_StrReceiveModem.Mid(nPos);//包含$,不想包含时nPos+1 
} 
方法
CString m_StrReceiveModem; 
int nPos = m_StrReceiveModem.Find('$'); 
if(nPos >= 0) 
{ 
CString sSubStr = m_StrReceiveModem.Right(StrReceiveModem.GetLength()-nPos); 
} 

//截取“$”到“#”的字符串

int first,last;

first= m_StrReceiveModem.Find("$");

last= m_StrReceiveModem.Find("#");

CString sSubStr = m_StrReceiveModem.Mid(first,last);

例程4:

 //根据路径解析出文件名
 CString m_Filepath = "E:\\fox_work\\vc_experiment\\hello.txt"

 int nPos = m_Filepath.Find('\\');
 CString sSubStr = m_Filepath;
  while (nPos)
  {
   sSubStr = sSubStr.Mid(nPos+1,sSubStr.GetLength()-nPos);  //取'\'右边字符串
   nPos = sSubStr.Find('\\');   //不包含'\',函数值返回-1 
       if (nPos==-1)    
         {
             nPos = 0;
          }
  }
  //最后sSubStr = "hello.txt"

CString::Find()函数

注: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',5); //结果 n = 12   

    ASSERT(n == 12)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值