none
Quiero eliminar las vocales de una cadena de caracteres intente con este pero cuando introduzco una cadena más larga el programa se me cae RRS feed

  • Pregunta

  • Char caracter;

    Console.WriteLine("Ingrese cadena:") ;

    String cadena = Console.ReadLine() ;

    Int p= Cadena. Length;

    For(internacional i=0; i < p-1;i++)

    {

    Console.Write(cadena[i]) ;

    Console.ReadLine () ;

    caracter= Convert.ToChar(cadena[i];

    If((caracter=='a')||(caracter=='e')||(caracter=='i')||(caracter=='o')||(caracter=='u'))

    {

    cadena=cadena.Remove(i,1);

    Console.WriteLine (cadena) ;

    }

    Console.WriteLine ("La cadena sin vocales es: {0}");

    Console.WriteLine () ;

    }

    jueves, 15 de agosto de 2019 21:59

Respuestas

  • Hola intenta algo asi

    public static void Main()
    {
        string cadena = "Esta es una cadena interactiva on unix";
        System.Console.WriteLine(cadena);
        System.Console.WriteLine(QuitaVocales(cadena));
        System.Console.ReadLine();
    }
    
    private static string QuitaVocales(string input)
    {
        string output = "";
        for (int i = 0; i < input.Length; i++)
        {
            char c = input[i];
            if (c.ToString().ToLower() == "a" || c.ToString().ToLower() == "e" || c.ToString().ToLower() == "i" || c.ToString().ToLower() == "o" || c.ToString().ToLower() == "u")
            {
                output += "_";
            }
            else
            {
                output += input[i];
            }
        }
        return output;
    }
    

    • Marcado como respuesta Linnkaren lunes, 19 de agosto de 2019 14:42
    viernes, 16 de agosto de 2019 1:30

Todas las respuestas

  • hola

    porque pones la explicacion del problema en el titulo, pero despues solo pones el codigo sin explicar nada mas? el titulo tiene que ser algo corto

    el programa se te cae, pero que mensaje de error recibes ?

    en esta linea

    For(internacional i=0; i < p-1;i++)

    que es internacional  ?

    No puedes cambiar la colecion que estas iterando porque los indices cambian, esta linea

    cadena=cadena.Remove(i,1);

    dentro del for no deberia estar

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 15 de agosto de 2019 22:56
  • Si

    Era

    For (int i=0 ;  .....

    viernes, 16 de agosto de 2019 1:18
  • Hola intenta algo asi

    public static void Main()
    {
        string cadena = "Esta es una cadena interactiva on unix";
        System.Console.WriteLine(cadena);
        System.Console.WriteLine(QuitaVocales(cadena));
        System.Console.ReadLine();
    }
    
    private static string QuitaVocales(string input)
    {
        string output = "";
        for (int i = 0; i < input.Length; i++)
        {
            char c = input[i];
            if (c.ToString().ToLower() == "a" || c.ToString().ToLower() == "e" || c.ToString().ToLower() == "i" || c.ToString().ToLower() == "o" || c.ToString().ToLower() == "u")
            {
                output += "_";
            }
            else
            {
                output += input[i];
            }
        }
        return output;
    }
    

    • Marcado como respuesta Linnkaren lunes, 19 de agosto de 2019 14:42
    viernes, 16 de agosto de 2019 1:30