Notas de pincel (2) - reemplazar espacios

Notas de pincel (2) - reemplazar espacios

Titulo

Implemente una función para reemplazar cada espacio en una cadena con "% 20". Por ejemplo, cuando la cadena es We Are Happy, la cadena después del reemplazo es We% 20Are% 20Happy.

Ideas

1. Atraviese la cadena de adelante hacia atrás, si encuentra un espacio, luego reemplácelo

Al reemplazar, debe tenerse en cuenta que los siguientes caracteres deben moverse hacia atrás, porque de '' a '% 20', hay dos caracteres más, por lo que a partir del último carácter, la posición de los dos caracteres se mueve hacia atrás en secuencia.

2. La condición str [i] == '\ 0' para juzgar la finalización del recorrido de la cadena

3. Después del reemplazo, debería continuar atravesando desde la posición de i + 3

Código

class Solution {
public:
	void replaceSpace(char *str,int length) {
        int i=0;
        while(str[i]!='\0')
        {
            if(str[i]==' ')
            {
                str[i]='%';
                length+=2;
                int j=0;
                while(j<length-i-2)
                {
                    str[length-1-j]=str[length-2-1-j];
                    j++;
                }
                str[i+1]='2';
                str[i+2]='0';
                i+=3;
            }
            else i++;
        }
	}
};
Publicado 36 artículos originales · 19 alabanzas · 20,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/GJ_007/article/details/105058402
Recomendado
Clasificación