Ir ao conteúdo
  • Cadastre-se
Nick_us

C Sobre declaração de variáveis em C

Recommended Posts

Estou estudando C por conta própria, motivo de minhas dúvidas.

 

Olhando em Livros e na Internet diversas formas de declarar uma variável do tipo char, percebi que posso também declarar elas assim, sem definir seu tamanho:
char Nome;

 

Como consigo atribuir um valor para ela via código?

Pois isso abaixo não funciona:
strcpy(Nome, "My God");
strcpy(Nome, "M");
// Neste caso cheguei a pensa que 1 caracter ela aceitaria, mas também não

 

Ainda no Caso acima, como ela não possue um tamanho, existe uma forma de eu colocar nela um valor, atribuindo um tamanho neste caso?

 

OBS:
- Respostas para declarar como: char Nome[100] não me servem, porque assim sei que funciona!
- ISSO não se trata de exercícios de Curso ou Faculdade, Já informei, Estudo por minha conta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

char designa 1 caractere, o que você está fazendo ao declarar char nome[100] é criar um vetor de chars, que pode armazenar 100 caracteres, que no caso podemos usar para armazenar "strings".

 

(Note que você também pode criar vetores de outros tipos como "float vetor[100];", isso não é algo exclusivo do char.)

 

Se você não deseja pre-definir o tamanho do vetor entre colchetes vai precisar lidar com alocação dinâmica de memória (malloc), ou então lidar com vetores de tamanho variável.

 

Ex:

 

Alocação dinâmica:

char *Nome;

Nome = malloc(100 * sizeof(char));

Ou vetor de tamanho variável:

int n;

n = 100;

char Nome[n];

 

adicionado 6 minutos depois

Caracteres literais são designados usando aspas simples 'A', enquanto strings usam aspas duplas "string". A função strcpy() serve para copiar strings armazenadas em vetores de chars.

 

No caso de 1 único caractere basta usar o = para atribuir o caractere à variável:

char c;

c = 'A';

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma ressalva, pra usar a função strcpy(), terá que incluir a biblioteca string.h no início do código:

#include <string.h>

 

adicionado 4 minutos depois

Outra coisa, essa declaração sem atribuir o tamanho só funciona em linguagens dinâmicas, como Python, Javascript, PHP, etc.

 

Em C tudo é meio cru mesmo, tem que declarar o tamanho do char. Em outras linguagens como Javascript, tem o tipo String que pode receber qualquer frase.
 

var nome = String();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×