VC++字符串截取总结
VC字符串截取首先看是char还是CString
CString比较好弄,有现成的方法
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;
返回值
nStar 代表以索引值nStart 的字符开始搜索 ,
即为包含以索引nStart字符后的字符串
例子
Cpp代码
CString s( "abcdef" );
ASSERT( s.Find( 'c' ) == 2 );
ASSERT( s.Find( "de" ) == 3 );
Cstring str(“The stars are aligned”);
Ing n = str.Find('e',5);
ASSERT(n == 12)
CString s( "abcdef" ); ASSERT( s.Find( 'c' ) == 2 ); ASSERT( s.Find( "de" ) == 3 ); Cstring str(“The stars are aligned”); Ing n = str.Find('e',5); ASSERT(n == 12)
CString::Left
CString Left( int nCount ) const;
throw( CMemoryException );
返回的字符串是前nCount个字符。
例子
Cpp代码
CString s( _T("abcdef") );
ASSERT( s.Left(2) == _T("ab") );
CString s( _T("abcdef") ); ASSERT( s.Left(2) == _T("ab") );
CString::Mid
CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;
nCount代表要提取的字符数, nFirst代表要提取的开始索引位置
例子
Cpp代码
CString s( _T("abcdef") );
ASSERT( s.Mid( 2, 3 ) == _T("cde") );
CString::Right
CString Right( int nCount ) const;
throw( CMemoryException );
返回的字符串是最后nCount个字符。
Cpp代码
CString s( _T("abcdef") );
ASSERT( s.Right(2) == _T("ef") );
如果是char*字符串,会有些麻烦
首先是C的例子
**
#include "stdio.h"
#include "conio.h"
char *left(char *dst,char *src,int n,int m)
{
char *p=src;
char *q=dst;
int len=strlen(src);
if(n>len) n=len;
while(n--) *(q++)=*(p++);
*(q++)='\0';
return dst;
}
char *right(char *dst,char *src,int n,int m)
{
char *p=src;
char *q=dst;
int len=strlen(src);
if(n>len) n=len;
p+=(len-n);
while(*(q++)=*(p++));
return dst;
}
char *mid(char *dst,char *src,int n,int m)
{
char *p=src;
char *q=dst;
int len=strlen(src);
if(n>len) n=len-m;
if(m>0) return NULL;
}
char *substring(char *dst,char *src,int len,int start)
{
}
main()
{