Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Substituindo palavras em uma frase

Console.Write("Digite uma frase: ");
string frase = Console.ReadLine()!;

Console.Write("Digite a parte da frase que você quer substituir: ");
string parteParaSubstituir = Console.ReadLine()!;

Console.Write("Digite pelo que você quer substituir: ");
string novaParte = Console.ReadLine()!;

string novaFrase = frase.Replace(parteParaSubstituir, novaParte);
Console.WriteLine($"A nova frase é: {novaFrase}");
1 resposta
solução!

Olá, Diego. Como vai?

O seu código ficou excelente! Você utilizou perfeitamente o método .Replace(), que é a ferramenta nativa e ideal no C# para buscar uma subcadeia de caracteres e substituí-la por outra em uma string. A estrutura para capturar as três entradas do usuário e a exibição final com a interpolação de strings ($"") foram implementadas de forma impecável.

Há um comportamento técnico bem importante do método .Replace() que vale a pena destacar como oportunidade de melhoria para o seu sistema: ele é estritamente case-sensitive (diferencia letras maiúsculas de minúsculas).

Se o usuário digitar a frase "O gato subiu no telhado", pedir para substituir "gato" por "cachorro", o programa funcionará perfeitamente. Porém, se ele digitar para substituir "Gato" (com G maiúsculo), o C# não encontrará a palavra exata e devolverá a frase original sem nenhuma alteração.

Para agregar ainda mais valor aos seus estudos e tornar o seu script muito mais robusto e inteligente, você pode utilizar uma sobrecarga moderna do .Replace() (disponível a partir do .NET Core / .NET 5+). Ela nos permite passar um parâmetro extra dizendo para o C# ignorar a diferença entre maiúsculas e minúsculas.

Veja como atualizar a sua linha de substituição para aplicar essa boa prática de mercado:

// Importante adicionar este namespace no topo do arquivo se já não estiver implícito:
using System; 

// ... (suas capturas de tela continuam iguais)

// O StringComparison.CurrentCultureIgnoreCase avisa ao C# para fazer a troca 
// ignorando se o usuário digitou letras maiúsculas ou minúsculas na busca
string novaFrase = frase.Replace(parteParaSubstituir, novaParte, StringComparison.CurrentCultureIgnoreCase);

Console.WriteLine($"A nova frase é: {novaFrase}");

Com essa pequena modificação, se o usuário buscar por "GATO", "Gato" ou "gato", o sistema fará a substituição com sucesso, tornando a experiência de uso do seu software muito mais fluida e à prova de falhas.

Parabéns pela excelente constância nos exercícios práticos e pela qualidade do seu código!

Espero que possa ter lhe ajudado!