CSting题,散分~
CSting弱弱的问题,,散分~~~~~~~~~~~~
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 ")
------解决方案--------------------
学习
------解决方案--------------------
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 ")
------解决方案--------------------
学习
------解决方案--------------------