例如
typedef struct name{
   char strName[10];
}vd;void TrimSpace
{
   char str[10]="   456789";
   name  vdp;
   for(int i=0;i<10;i++)
   {
      vdp.strName[i] = str[i];
   }
}
我想去掉结构体vdp.strName[i]的空格,TrimLeft的方法不能用,应该怎么办啊?

解决方案 »

  1.   

    vdp.strName[i]没有Trim的方法啊,如何把结构体的内容附到CString 类型的变量里啊 
      

  2.   


    typedef struct name{ 
      char strName[10]; 
    }vd; void TrimSpace 

      char str[10]="  456789"; 
      name  vdp; 
      for(int i=0;i <10;i++) 
      { 
          if(str[i]!=" ")
             vdp.strName[i] = str[i]; 
      } 

    这是种方法,较符合你以前的逻辑,不过,看你的结构体只一个char数组,干脆直接写CString算了,然后用.Trim()
      

  3.   


    你这种方法还是会引起空格的,因为即使你没有把空格赋值进去,但是本来是没有东西的,所以是空格的数组字节还是空的;下面是我的改进办法:typedef struct name{ 
      char strName[10]; 
    }vd; void TrimSpace 

      char str[10]="  456789"; 
      name  vdp; 
      for(int i=0,j=0;i <10;i++) 
      { 
          if(str[i]!=" ")
           {
             vdp.strName[j++] = str[i]; //是空格的地方,strName中的j就不会累加了
           }
      } 

    如果是CString的话,下面有个例子
    CString szVdp;
    char buf[10] = "    456789";
    szVdp = buf;
    szVdp.Trim();
    MessageBox(szVdp);
      

  4.   

    CString(vdp.strName).Trim()
    这么处理为什么空格还在啊?
      

  5.   

    void TrimSpace 

      char str[10]="  456789"; 
      name  vdp; 
      int j=0; 
      for(int i=0;i <10;i++) 
      { 
         if(str[i]!=" ")
         {
          vdp.strName[j] = str[i];
          j++;
         } 

      } 
    }
      

  6.   


    是把一个临时CString对象的空格干掉了,Trim()的返回值就是最后结果
      

  7.   

    CString(vdp.strName[i]).Trim()
    试了 空格还在  这么写对吗?