none
comprimento de um vetor RRS feed

  • Pergunta

  • Ola galera sou novo em c# e me deparei com um problema que acredito deve ser simples.

    Como eu faço um vetor com um tamanho especifico tipo "char[] nome = new char[15];" e pedir pra o usuario digitar seu nome com no maximo 15 digitos, ler a linha que o usuario digitou e armazenar em um vetor, se ultrapassar 15 digitos de um erro.

    segue o codigo so pra ter uma noçao da minha duvida.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication67
    {
        class Program
        {
            static void Main(string[] args)
            {
                //vetor a ser preenchido
                char[] nome = new char[15];


                //nome a ser lido e cada letra armazenada um espaço do vetor
                
                Console.WriteLine("digite seu nome (no maximo 15 characters): ");
                nome = Convert.ToChar(Console.ReadLine());
                //nao da certo isso e so pra ter uma noçao 
            }
        }
    }


    • Editado estagiarioti terça-feira, 23 de setembro de 2014 15:39
    terça-feira, 23 de setembro de 2014 15:38

Respostas

  • Nao entendi porque vc quer armazenar o resultado em um vetor... o Tipo string já é um vetor de caracteres. Basta olhr a propriedade Lenght.

    PAra verificar o tamanho, faça deste jeito:

    string nome = Console.ReadLine();
    if(nome.Lenght>15)
       Console.WriteLine("O nome nao pode ultrapassar 15 caracteres");
    
    
    
    
    
    

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    terça-feira, 23 de setembro de 2014 15:56
    Moderador
  • http://www.dotnetperls.com/char-array

    A flower cannot blossom without sunshine, and man cannot live without love.

    terça-feira, 23 de setembro de 2014 15:53
    Moderador
  • Eu nao estou entendendo o que vc quer fazer... a mesma coisa poderia ser feita de forma mais simples (e dinamica pois nao precisa estabelecer um limite inicial):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication67
    {
        class Program
        {
            static void Main(string[] args)
            {
                string nome;
    
    
                //nome a ser lido 
                Console.WriteLine("digite seu nome: ");
                nome = Console.ReadLine();
       
                //exibindo vetor
                for (int x = 0; x < nome.Length; x++)
                {
                    Console.WriteLine(nome[x]);
                }
                Console.ReadKey();
            }
        }
    }

    Nos de mais detalhes do que vc deseja fazer.. nao esta claro.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 23 de setembro de 2014 17:24
    Moderador

Todas as Respostas

  • http://www.dotnetperls.com/char-array

    A flower cannot blossom without sunshine, and man cannot live without love.

    terça-feira, 23 de setembro de 2014 15:53
    Moderador
  • Nao entendi porque vc quer armazenar o resultado em um vetor... o Tipo string já é um vetor de caracteres. Basta olhr a propriedade Lenght.

    PAra verificar o tamanho, faça deste jeito:

    string nome = Console.ReadLine();
    if(nome.Lenght>15)
       Console.WriteLine("O nome nao pode ultrapassar 15 caracteres");
    
    
    
    
    
    

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    terça-feira, 23 de setembro de 2014 15:56
    Moderador
  • Olá!

    Ao invés de utilizar:

    Convert.ToChar(Console.RearLine());

    Utilize:

    Console.ReadLine().ToCharArray()

    No Convert.ToChar() você está tentando converter a string toda para um único char. No ToCharArray() você está separando cada caractere da string em uma posição do Array.

    Como tarefa, observe o comportamento do ToCharArray() e faça as validações do tamanho do nome inserido.

    Bons estudos!


    Sócrates Lopes
    socrates@socrateslopes.com.br

    terça-feira, 23 de setembro de 2014 15:59
  •  //vetor a ser preenchido
     char[] nome = new char[15];
                
    //nome a ser lido e cada letra armazenada um espaço do vetor
    
    Console.WriteLine("digite seu nome (no maximo 15 characters): ");
    nome = Console.ReadLine().ToArray();
    Console.WriteLine(nome);

    terça-feira, 23 de setembro de 2014 16:00
  • usei as duas dicas e consegui uma boa conclusao, usando um laco para caso o usuario digite mais que 15 digitos.

    mas usando so um ToCharAway() o vetor nao estora caso receba mais que 15 digitos.

    tipo o usuario digite uma palavra com 20 digitos, e se pedir pra exibir todos indices do vetor ele exibe os 20.

    entao eu acho que o indice do vetor foi aumentado, ou eu to fazendo errado?

    segue o codigo, teria uma forma 

        
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication67
    {
        class Program
        {
            static void Main(string[] args)
            {
                //vetor a ser preenchido
                char[] nome = new char[15];
    
    
                //nome a ser lido e cada letra armazenada um espaço do vetor
                Console.WriteLine("digite seu nome (no maximo 15 characters): ");
                nome = Console.ReadLine().ToCharArray();
       
                //exibindo vetor
                for (int x = 0; x < nome.Length; x++)
                {
                    Console.WriteLine(nome[x]);
                }
    
                Console.ReadKey();
    
                
               
            }
        }
    }
    terça-feira, 23 de setembro de 2014 17:05
  • Eu nao estou entendendo o que vc quer fazer... a mesma coisa poderia ser feita de forma mais simples (e dinamica pois nao precisa estabelecer um limite inicial):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication67
    {
        class Program
        {
            static void Main(string[] args)
            {
                string nome;
    
    
                //nome a ser lido 
                Console.WriteLine("digite seu nome: ");
                nome = Console.ReadLine();
       
                //exibindo vetor
                for (int x = 0; x < nome.Length; x++)
                {
                    Console.WriteLine(nome[x]);
                }
                Console.ReadKey();
            }
        }
    }

    Nos de mais detalhes do que vc deseja fazer.. nao esta claro.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    terça-feira, 23 de setembro de 2014 17:24
    Moderador