CString截取

来源:互联网 发布:网络推广培训机构 编辑:程序博客网 时间:2024/05/10 06:38

转载了一些例子。加上自己遇到的例子,目的是熟悉CString的操作

一,文件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:(csdn)

取得一个字符串中第一个 '?'号之前的字符
方法1

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就行

方法2

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



例程3:(csdn)
一个CString类对象m_StrReceiveModem={ATS0=2OK$03#}
如何截取从$开始的字符串
方法1

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

      方法2

CString m_StrReceiveModem;       int nPos = m_StrReceiveModem.Find('$');       if(nPos >= 0)       {           CString sSubStr = m_StrReceiveModem.Right(StrReceiveModem.GetLength()-nPos);        }


 

以及Mid(int nFirst,int nSize)

例程四

定义CString 要找到的一个串截取这个串怎么办???
CString = "abcde base64 baaaaa"
要把base64后面的字符串保留.怎么处理????
现在你给出的字符串已经知道了长度,而且也知道分隔位置在哪儿,直接可以用CString::Right()函数获取后半截,如下:
CString str="abcde base64 baaaaa";
str=str.Right(6);//等式右边得到str的后6个字符组成的字符串然后赋值给str
如果先前不知道分割点的确切位置的话,可以用如下函数查找:
CString::Find() //1
CString::FindOneOf() //2
函数1有如下几个原型:
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR lpszSub, int nStart ) const;
函数2的原型为:
int FindOneOf( LPCTSTR lpszCharSet ) const;
找到分隔点位置后就可以截取了。
与CString::Right(int n)相对的还有CString::Left(int n),它是用来截取字符串前面n个字符的

CString str="abcde base64 baaaaa";
CString findstr="base64";
CString mystr;
int k=str.Find(findstr)+findstr.GetLength();
mystr= str.Right(str.GetLength()- k);
CString cs;
返回左边的值,cs.left(int x) x为几位;
返回右边的值,cs.right(int x) x为几位;
cs.GetLength();;
我觉得有上面的3个函数,你会使用的话,CString 里面的任意 字符段 都截出来了

AfxMessageBox(mystr);
 
例程五 一个字符串,每遇到换行就保存之前的字符串,并放入数组中。
比如CString strLog=_T("lin1\r\nline2\r\nline3\r\nline4\r\n");
存放数组list<CString> lstStr,lstStr中内容为 line1,line2,line3,line4.
 
CString strLog = _T("lin1\r\nline2\r\nline3\r\nline4\r\n");list<CString> lstStrout;CString strInfo = "\r\n";CString strTemp = strLog;int index = 0;if ( !strTemp.IsEmpty() && (strTemp.Find(strInfo) >= 0) ){while( 1 ){index = strTemp.Find(strInfo);CString strOut = strTemp.Left(index);lstStrout.push_back(strOut);if ( ( index + strInfo.GetLength() ) == strTemp.GetLength()){break;}strTemp = strTemp.Right(strTemp.GetLength() - index - 2);}}

 
 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 柿子和螃蟹后要怎么办 柿子和螃蟹吃了怎么办 吃了没熟的虾怎么办 邻居小孩怕我家小狗怎么办 心里有一道坎过不去了怎么办 刚买的小狗怕人怎么办 一年级孩子字写不好怎么办 小狗三天没吃了怎么办 捡到一只流浪猫怎么办 仓鼠四肢红肿圈状怎么办 泰迪的鼻子干燥怎么办 小狗眼睛有白色浓稠物怎么办 流浪狗生了小狗怎么办 学生字写得很差怎么办 猫身上粘老鼠胶怎么办 抄东西抄的手疼怎么办 皮质物品被油性笔划了怎么办 在小区猫丢了怎么办 母猫把小猫丢了怎么办 小狗不吃东西没精神怎么办 小狗的鼻子烂了怎么办 狗老是在家拉尿怎么办 狗狗鼻子有点干怎么办 狗的鼻头不黑了怎么办 金毛鼻头不黑怎么办 金毛毛掉了不长怎么办 狗狗鼻子烂了怎么办 小比熊鼻子不黑怎么办 狗狗鼻子起皮怎么办 金鱼身子弯了是怎么办 属狗的纹龙怎么办 卫生间的墙空的怎么办 花生苗长得好怎么办 菊花上面的白虫怎么办 小狗不吃东西还吐怎么办 小狗呕吐不吃东西没精神怎么办 小狗生病了不吃东西怎么办 小兔子腿摔了怎么办 刺猬葡萄我们骄傲我们该怎么办 小狗被邻居家大狗咬死了怎么办 狗狗死胎在腹中怎么办