删除一个字符串中的空格

来源:互联网 发布:剑三脸型数据怎么复制 编辑:程序博客网 时间:2024/05/20 06:30

思路①:利用循环,碰到空格即删除(通过覆盖来删除),但是要注意连续空格的情况,还要注意每次删除一个字符后字符串的长度都要减一。

#include <iostream>#include<cstdio>#include<cstring>using namespace std;void DeleteSpace(char *s){    int len=strlen(s);    for(int i=0;i<len;i++)    {        if(s[i]==' ')        {            for(int j=i;j<len;j++)            {                s[j]=s[j+1];            }            len--;//字符串的长度减一            i--;//防止连续空格的情况        }    }    s[len]='\0';//防止最终的字符串过长}int main(){    char s[100];    gets(s);    DeleteSpace(s);    puts(s);    return 0;}

思路②:开辟另一组数组空间,但是空间复杂度较一种大。

#include <iostream>#include<cstdio>#include<cstring>using namespace std;void DeleteSpace(char s[100]){    int lens=strlen(s);    char temp[100];    int j=0;    for(int i=0;i<lens;i++)    {        if(s[i]!=' ')        {            temp[j++]=s[i];        }        else            continue;    }    temp[j]='\0';    int lent=strlen(temp);    for(int k=0;k<lent;k++)    {        s[k]=temp[k];    }    s[lent]='\0';}int main(){    char s[100];    gets(s);    DeleteSpace(s);    puts(s);    return 0;}


0 0