4.空格替换

来源:互联网 发布:网络交换机千兆百兆 编辑:程序博客网 时间:2024/06/07 10:44
#include <iostream>#include <cstring>#include <algorithm>using namespace std;void ReplaceBlank(char str[], int length){    if(str == nullptr)        return;    int len = strlen(str);    int blankspacecnt=count_if(str, str+len,[](char c){return c==' ';});    //统计空格数目    int extra = 2*blankspacecnt;    if(len+extra > length) return;  //字符数组长度不够,不能完全扩展    int i = len-1;    int j = len-1 + extra;    str[j+1] = '\0';    for(; blankspacecnt>0; )    {        if(str[i] != ' ')        {            str[j--] = str[i--];    //从后向前        }        else        {            str[j--] = '0';     //替换空格            str[j--] = '2';            str[j--] ='%';            i--;            blankspacecnt--;        }    }}int main(){    char str[20];    strcpy(str, "we are happy.");    ReplaceBlank(str, 20);    cout<<str;}
1 0
原创粉丝点击