删除字符串中所有空格,这样为啥不行?

编译没有错,但运行错了

img

可以尝试一下这个思路

void f(char str[])
{
    char *a=str;   //定义a用于临时存储str的字符串;
    int i=0;
    while( * a)  //到字符串末尾‘\0’时结束循环
    {
        if(*a!=' ')  //判断字符是否为空格,如果不是存入str
        {
            str[i++]=*a;
        }
     a++;
    }
     str[i]='\0';  //字符串用结束符标识
     cout<<str;   //用cout输出得到的新字符串
}

希望对题主有所帮助,可以的话还请点下采纳!

i--放到if的花括号里
也就是i--和它上面的花括号换一下位置