使用指针从char中删除空格

时间:2018-08-29 09:23:12

标签: c

我正在尝试从带指针的字符中删除空白。

 char * byte="a b c d"
 char * CopiedByte;
 for (;*byte;++byte)
   {
    if(*byte!=' ')
      *CopiedByte=*byte;


  }
 printf("%s",CopiedByte);

但是我没有得到任何输出

1 个答案:

答案 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);