Ir ao conteúdo
  • Cadastre-se

String em C - Ajuda


AkiraxD

Posts recomendados

Olá

 

como todos já sabem a linguagem C não tem o tipo de variável string, porém eu estava lendo alguns artigos falando sobre um meio de fazer utilizando vetores e ponteiros. 

Mas eu queria saber se há alguma maneira de fazer uma variável receber uma palavra inteira através do scanf, ou seja, por meio da interação do usuário do programa.

Se puderem ajuda eu agradeço. 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá!

Você pode usar um vetor tipo char com tamanho maior do que você acha que pode ser escrito uma palavra. Exemplo: char disciplina[10]

 

depois use um printf("leitura") e scanf("%s", variável); simples para entrar com os dados na variável.

 

http://www.cprogressivo.net/2013/03/Lendro-e-Escrevendo-Strings-em-C.html

 

lembrando que ele só pega os caracteres até o espaço. Se for digitar um nome completo, por exemplo, ele só pegará o primeiro nome. A solução é usar vários vetores e depois uní-los ou usar a função gets(s):

exemplo:

char string[100];    printf ("Digite o seu nome: ");    gets (string);

fontes úteis:

http://pontov.com.br/site/cpp/46-conceitos-basicos/83-strings-em-c

 

http://www.linguagemc.xpg.com.br/strings.html

 

http://homepages.dcc.ufmg.br/~joaoreis/Site%20de%20tutoriais/c_int/strings.htm

Link para o comentário
Compartilhar em outros sites

Obrigado pela ajuda.

 

Agora um programa que eu estava fazendo infelizmente acho que não tem solução.

Eu tinha criado um vetor do tipo char pra armazenar nomes compostos:

char nomes[100]int x;  for(x=0;x<100;++x){    printf("Digite o nome n.%i: ",x+1);    scanf(" %c",&nomes[x]);  }

mas aparentemente é impossível fazer o que eu tava pretendendo.
Além disso eu tenho uma outra dúvida completamente diferente:

Tipo, eu quero perguntar quantos nomes seriam armazenados, antes de começar a armazena-los, esse valor seria guardado dentro de uma variável, e esse numero determinaria o tamanho do vetor (ou matriz, se fosse o caso), exemplo:

 

int x=0;char nomes[x];printf("Digite a quantidade de numeros que deseja armazenar: ");scanf("%i",&x);

E nesse exemplo acima, ele não acusa erro dentro do programa, mas digamos de depois do SCANF eu faça um ciclo para armazenar valores no vetor "nomes[x]", o aplicativo para de funcionar na mesma hora.
agradeço desde já

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!