Substituir uma sequencia de caracteres em C++

Off Topic

25/12/2014

Olá, eu sou novo aqui :)

Existe um comando assim:
Exemplo:
string a = "Brasil";
a = a.replace("s", "z");


Esse comando só consegue substituir um caractere por vez!
E eu quero uma sequencia!

Eu fiquei sabendo de um replaceAll, mas da erro de compilação.

Alguém pode me ajudar?

:)
Lucas Balena

Lucas Balena

Curtidas 0

Respostas

Lucas Balena

Lucas Balena

25/12/2014

Bem, resolvi criar minha própria função, já que não encontrei em lugar algum:

Estou disponibilizando para quem quiser usar:

Eu fiz ela com muito carinho:

string replaceAll (string palavra, string a, string b)
{
    //Autoria de Lucas Balena
    string kkk = "";
    for(int i = 0 ; i <= palavra.length() ; i++)
    {
        for(int j = 0 ; j <= palavra.length() - i ; j++)
        {
            kkk = kkk + palavra[j];
            if(kkk == a)
            {
                for(int h = 0 ; h <= j ; h++)
                {
                    palavra[h] = b[h];
                }
            }
        }
    }
    return palavra;
}


Dai e só você usar ela assim:


#include <iostream>

using namespace std;

string replaceAll (string palavra, string a, string b)
{
    //Autoria de Lucas Balena
    string kkk = "";
    for(int i = 0 ; i <= palavra.length() ; i++)
    {
        for(int j = 0 ; j <= palavra.length() - i ; j++)
        {
            kkk = kkk + palavra[j];
            if(kkk == a)
            {
                for(int h = 0 ; h <= j ; h++)
                {
                    palavra[h] = b[h];
                }
            }
        }
    }
    return palavra;
}

int main()
{
    string ola = "abacate";

    cout << replaceAll(ola, "aba", "ola");
    return 0;
}





Incrível né?
GOSTEI 0
Lucas Balena

Lucas Balena

25/12/2014

Se quiser mudar o nome da função pode colocar tipo "substituir".

Eu coloquei replaceAll porque era um teste.

Atenção o nome da função pode dar erro devido a tal função replaceAll (que eu nem sei se existe, testei e não deu certo) da bliblioteca String.

Boas Festas de fim de ano.
E Feliz Natal.

Abraços.
GOSTEI 0
Gleyton Menezes

Gleyton Menezes

25/12/2014

Lucas, Feliz Natal

esse seu exemplo é a pratica de logica de programação?
GOSTEI 0
Lucas Balena

Lucas Balena

25/12/2014

Gleyton, Feliz Natal igualmente :)

Acho que não, eu estava precisando fazer isso para um software meu, então pesquisei em tudo que site (inclusive postei aqui para ver se alguém sabia), mas não encontrava!
Eu queria um código pronto. Que funciona-se simplesmente incluindo uma biblioteca. Encontrei o replace da biblioteca string mas ele só fazia de um char por vez.
Então falei para mim mesmo parar de ser preguiçoso e criar minha própria função. Vendo que a duvida que eu tinha era a mesma do que muitas pessoas na internet, resolvi postar a solução aqui depois de criar a função.
GOSTEI 0
Gleyton Menezes

Gleyton Menezes

25/12/2014

Feliz Natal, entendi pouco algumas coisas que citou, kkkk.

abraço.
GOSTEI 0
POSTAR