我正在尝试从带指针的字符中删除空白。
char * byte="a b c d"
char * CopiedByte;
for (;*byte;++byte)
{
if(*byte!=' ')
*CopiedByte=*byte;
}
printf("%s",CopiedByte);
但是我没有得到任何输出
答案 0 :(得分:2)
您尚未为CopiedByte
分配内存,一旦将字符从byte
复制到CopiedByte
,就需要增加CopiedByte
来指向下一个位置。
重要说明:复制所有数据后,请放入NULL
终止符。
使用malloc
(动态)分配的内存需要释放,否则将有memory leaks
。
char * byte="a b c d";
char * CopiedByte = malloc(strlen(byte) +1);
int i=0;
for (;*byte;++byte)
{
if(*byte!=' ')
{
CopiedByte[i]=*byte;
i++;
}
}
CopiedByte[i] = '\0';
/* do your work*/
free(CopiedByte);