如何程序通过编辑在数组里删除空格

问题遇到的现象

不知道字符串如何在数组里删除空格

我想要达到的结果

能忽略字符串空格并输出,比如我输入的是abc def,他的数组里经过程序更改后可以没有空格,即使输入空格

方法1:遍历字符串每个字符,如果是空格,则后续所有字符向前移动一位
方法2:遍历字符串每个字符,如果不是空格,则按顺序从头写入字符串,最后增加一个结束符

可以用String.replaceAll(" ","")

我是这么理解的,供参考:
定义一个删除字符数组里面的空格的函数即可:先遍历数组每个元素,如果是空格,则将当前位置后面的元素往前移动一个位置,末尾添加一个空字符'\0',直到遍历完整个数组。
参考链接:
C++每次读取一行字符串输入(学习笔记) (转) - ACBingo - 博客园


#include <iostream>
#include <string.h>
using namespace std;

//删除字符数组里面空格的函数 
void deleteSpace(char * str){
    
    int i = 0;
    
    if(str==NULL){
        cout<<"字符串为空!"<<endl;
        return; 
    } 
    
    int k;
    
    //遍历存储字符串的字符数组 
    while(str[i]!='\0'){
        
        //如果当前字符为空格,则将数组后面的每个元素往前移动一个位置,然后在末尾加上空字符'\0' 
        if(str[i]==' '){
            
            //将当前字符位置后面的元素逐个往前移动一个位置 
            for(k=i;k<strlen(str)-1;k++){
                
                str[k]=str[k+1];
        
            }
            //末尾加上空字符 
            str[k]='\0';    
        }
        
        i++;
    }
    
    
} 


int main(void){
    
    char str[100];
    
    cout<<"请输入一个字符串:";
    //https://www.cnblogs.com/acbingo/p/4674480.html
    //获取一行字符串输入 
    cin.getline(str,100);
       
    
    deleteSpace(str);
    
    cout<<"删除字符串空格后:";
    cout<<str;
    
    return 0; 
}

img

我去试下,感谢大家了