CSDN=>FAQ=>FAQ 展示
  • 问题内容: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)
相关FAQ
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo