去除字符串前后和中间多余的空格

来源:互联网 发布:新兴网络投资项目 编辑:程序博客网 时间:2024/05/16 06:48

笔试是一紧张好像写的有问题,回来后又自己写了下。

#include "iostream"#include "string.h"using namespace std;void removeBlank(char* str){int len=strlen(str);bool isEnd=false;//记录是否到了字符串的结尾int i;for(i=0;i<len;i++){while(str[i]==' ' && str[i]!='\0')i++;if(i==len)isEnd=true;//cout<<i;   测试用while(str[i]!=' ' && str[i]!='\0'){cout<<str[i];i++;}if(!isEnd)cout<<" ";}}int main(){char str[]="  You  like    china.  ";removeBlank(str);cout<<endl;return 0;}
我也看了下网上别人的代码,感觉这个也挺好,就参考下点击打开链接

    #include<stdio.h>    #include<string.h>         void removeExtraPalce(char * str);         main(){        char * str = " I like http://hi.baidu.com/mianshiti ";        removeExtraPalce(str);        return 0;    }         void removeExtraPalce(char * str)    {        int i,count=0;        int length =strlen(str);        bool begin;             if(str[0] != ' '){            begin=true;        }else{            begin=false;        }             printf("[");        for(i=0;i<length;i++){            //去掉字符串头部空格            if(str[i]==' ' && !begin){                if(i<length-1 && str[i+1] !=' '){                    begin=true;                }                continue;            }                 if(begin){                if(str[i] == ' '){                    if(i<length-1 && str[i+1] !=' '){                        //只输出中间的一个空格                        printf("%c",str[i]);                        count=0;                    }                    count++;                    continue;                }            }                 printf("%c",str[i]);        }             printf("]\n");    }



0 0
原创粉丝点击