例如
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的方法不能用,应该怎么办啊?
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的方法不能用,应该怎么办啊?
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()
你这种方法还是会引起空格的,因为即使你没有把空格赋值进去,但是本来是没有东西的,所以是空格的数组字节还是空的;下面是我的改进办法: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);
这么处理为什么空格还在啊?
{
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++;
}
}
}
是把一个临时CString对象的空格干掉了,Trim()的返回值就是最后结果
试了 空格还在 这么写对吗?