szCmd="conf:asdf:sdf";
szCmd.TrimLeft ();
szCmd.TrimRight ();
szCmd.MakeLower ();
CString cmd=szCmd;
cmd.TrimRight (':');
cmd.TrimRight ();
为什么内容不变呢。

解决方案 »

  1.   

    一个CSring的左右有空格等空白符是,你用的方法才有效,没有的话,用上述方法后,当然还是原来的CString
      

  2.   

    我指的是:
    szCmd="conf:asdf:sdf"; 
    CString cmd=szCmd; 
    cmd.TrimRight (':'); 
    我认为结果是:conf才对啊。
      

  3.   

    你想去除:后面的东西是吗??
    首先找到:的位置,使用.Left()方法就可以达到你的效果
    CString szCmd="conf:asdf:sdf";  
    CString cmd=szCmd; 
    int i=   szCmd。Find(':');
    cmd = szCmd.Left(i);
    试一下
      

  4.   

    那是你对TrimRight函数功能得误解,它不是删除某个字符右侧得字符,而是删除字符串末尾出现得对应字符。也就是如果你字符串末尾有一个或者多个:,才会删除
    你得要求是取:左边得字符串,应该用cmd.Find(_T(':'))找到第一个字符,然后用CString::Left获得
      

  5.   

    是的,
    但是这个为什么不行呢?
    szCmd="conf:asdf:sdf";  
    CString cmd=szCmd;  
    cmd.TrimRight (':');  
      

  6.   

    Trims trailing characters from the string. TrimRight()是砍尾巴上的毛
    Trims leading characters from the string.TrimLeft()是砍脑袋上的毛