删除char数组中的空格

时间:2019-03-09 05:00:48

标签: c arrays

我想从数组中删除空格并重新排列数组的值。

array[]="1  2 6    9  5";

我想要像数组的值

array[]="12695"

1 个答案:

答案 0 :(得分:2)

有无数种方法可以产生一个简单的解决方案,以从字符串中删除空格。这是我使用指针迭代想出的一个小例子:

void remove_spaces(char * str){
    char * back = str;
    do{
        if(*back != ' ')
            *str++ = *back;
    }while(*back++ != '\0');
}

此代码使用两个指针遍历给定的字符串。在循环的每个步骤中,针对空字符检查back指针(以查看是否已到达字符串的结尾)并递增。在循环的主体中,只要back不指向' ',就将后指针的值复制到前指针。使用后递增(str)运算符将*back复制到*str后,++也立即递增。