不知道字符串如何在数组里删除空格
能忽略字符串空格并输出,比如我输入的是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;
}
我去试下,感谢大家了