[Estrutura de dados e algoritmo] Substituir espaços em cadeias

Por favor, implemente uma função para substituir o espaço em uma string por "% 20". Por exemplo, quando a sequência é We Are Happy. A sequência após a substituição é We% 20Are% 20Happy.

ubuntu linux, depuração vscode passada

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


class solution{

public :
    void blankreplace(char * str,int length)
    {
        //字符串为空 
        if(str==nullptr)
        {
            cout<<"  空指针"<<endl;
            return;
        }
        cout<<"1111111111111"<<endl;
        //边界检查
        int originallen =0;
        int count_blank=0;
        int last_length=0;
        char *p=str;
      while(*p!='\0')
        {
            cout<<"while "<<endl;
            if(*p++==' '){
                count_blank++;
            }
            
            originallen++;
            cout<<"originallen"<<originallen<<endl;
        }
        last_length=originallen+2*count_blank;

        if(last_length<length)
        {
            return;
        }

cout<<"last_length:"<<last_length<<endl;
        char * plast =str+last_length;
        while(*p!=*plast)
        {
            cout<<*p<<endl;
            if(*p==' ')
            {
                *plast--='0';
                *plast--='2';
                *plast--='%';
            }
            else{
                *plast--=*p;
            }
            p--;
        }



    }
};

int main()
{
    char test[50];
    test[0]='\0';
   char *p=NULL;
   cout<<"null p "<<endl;
    strcpy(test,"we are happy");
    p=test;
   solution so;

   so.blankreplace(p,strlen(test));
cout<<"--->"<<test<<endl;

}
Publicado 19 artigos originais · Curtidas0 · Visitas 383

Acho que você gosta

Origin blog.csdn.net/qinchun/article/details/105335578
Recomendado
Clasificación