-
问题内容:CSting弱弱的问题,,散分~~~~~~~~~~~~
- 原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=5568010
- 所属论坛:基础类
审核组:VC/MFC
- 提问者:hslinux
解决者:jasonshark
- 感谢:WizardK wynney slio2008 fenge1981 trueadou jasonshark bobob wy2001wy shenzhiwanghz healer_kx cosobin ralphvsclark walfbaby kendan3 mrdone lb_hit zhejiang9
- 关键字:VC/MFC 基础类
- 答案:
CString strBegin = _T("<value>");
CString strEnd = _T("</value>");
CString strRecv = _T("<value>jpgdata</value>");
strRecv.TrimLeft(strBegin);
strRecv.TrimRight(strEnd);
strRecv = _T("<value>jpgdata </value>");
strRecv.TrimLeft(strBegin);
strRecv.TrimRight(strEnd);
大家看看strRecv.TrimRight(strEnd);后strRecv的值,,说下为什么。。。。。。
---------------------------------------------------------------
“jpgdata ”,至于为什么,你去看看MSDN
---------------------------------------------------------------
不懂,小菜一个,来领分的
---------------------------------------------------------------
不理解你为什么对strRecv赋了两次值
---------------------------------------------------------------
回答不出有没有分啊?
---------------------------------------------------------------
...真的是很诡异!这都让你发现了!
应该是个BUG吧?
---------------------------------------------------------------
呵呵,楼主的重点是在第一次那里
CString strRecv = _T("<value>jpgdata</value>");
strRecv.TrimLeft(strBegin);
strRecv.TrimRight(strEnd);
---------------------------------------------------------------
结果:jpgdata (后有一个空格)
TrimLeft和TrimRight是截取字符串
---------------------------------------------------------------
后面有个空格,咋了?
---------------------------------------------------------------
有什么问题?
---------------------------------------------------------------
我知道了,楼主估计之前的理解跟我是一样的,所以才问了这个问题...
strRecv.TrimRight(strEnd);
表示从strRecv开始,截除所有在strEnd中出现的字符,而并不是说是从strRecv的右边截除strEnd这个字符串...呵呵
---------------------------------------------------------------
TrimLeft(strBegin ),把左边包含strBegin子集的字符全部去掉,直到出现一个不属于strBegin 子集的字母结束
TrimRight类似
---------------------------------------------------------------
嗯果然有空格。
不过接分是真的。
---------------------------------------------------------------
响应楼主散分的号召,jf
---------------------------------------------------------------
纯粹接分。
---------------------------------------------------------------
帅哥,我来解释一下:
strRecv.TrimRight(strEnd);
是剪切掉右侧strRecv在strEnd里面所有的全部字符。
因为剪切过左边後剩下的“jpgdata</value>"
从a</value>开始所有字符都在strEnd中自然就剪掉了,
举例:
CString strBegin = _T("<value>");
CString strEnd = _T("</value>");
CString strRecv = _T("<value>jpgdataaaaaaaa");
strRecv.TrimLeft(strBegin);
strRecv.TrimRight(strEnd);
之后是strRecv是“jpgdat”,你是把TrimRight函数的功能理解错了。
---------------------------------------------------------------
CString strBegin = _T("<value>");
CString strEnd = _T("</value>");
CString strRecv = _T("<value>jpgdata</value>");
strRecv.TrimLeft(strBegin);
("jpgdt/")
strRecv.TrimRight(strEnd);
("jpgdt")
---------------------------------------------------------------
学习
---------------------------------------------------------------
study
---------------------------------------------------------------
晕!!!,
好好学习,天天向上
---------------------------------------------------------------
首先,引用MSDN:
void CString::TrimLeft( LPCTSTR lpszTargets );
Use the versions of this function that accept parameters to remove a particular character or a particular group of characters from the beginning of a string.
就是从左面开始找出现在lpszTargets 字符集里面的字符,lz是不是理解成去除左面的字符串了?
其次,jf。
---------------------------------------------------------------
偶来接分!
- 评价:
给朵鲜花(2)
扔个鸡蛋(3)