不知道错在哪了,不能删除空格
郭金迪 知名达人 2017-02-04 11:51:26
1654 2 0

char *a;

 int i,n;

 n=strlen(*str);

 for(i=0;i<n;i++)

if(*str!=' ')

{a[i]=str[i];

*(str++);

}

a[i]=0;

strcpy(*str,*a);

return;


问题来自: 编程题真题

共 2 个回答

    qqq 资深元老 助教 3420天前

    你的逻辑有些混乱啊,按照你的写法,你应该是遍历str数组,将非空格字符放入a数组,那么a数组的下标当然不能还是用i计数,应该初始化一个j=0用于a数组下标的计数。而且你既然已经用for循环进行i的自增了,为什么还要用指针str自增呢。。我给你改了一下,你试试看。红色是我修改的部分。

    char *a;

     int i,n,j=0;

     n=strlen(*str);

     for(i=0;i<n;i++)

    if(str[i]!=' ')

    {a[j]=str[i];

    j++;

    }

    a[j]=0;

    strcpy(*str,*a);

    return;


    qqq 资深元老 助教 3420天前

    而且向你推荐标准答案的编程思路。

    void fun (char *str)
    {
    int i=0;
    char *p=str;
    while(*p)
    {
    if(*p!=' ') /*删除空格*/
    {
    str[i]=*p;
    i++;
    }
    p++;
    }
    str[i]='\0'; /*加上结束符*/
    }

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题