Ir ao conteúdo
  • Cadastre-se

C string / array de caracteres


Ir à solução Resolvido por devair1010,

Posts recomendados

Eu tenho algumas dúvidas sobre string/array de caracteres em C

 

1- String e array de caracteres são a mesma coisa? fiquei com essa dúvida pois aprendi que char string[]; é uma string, e no site stack overflow uma pessoa disse: "Um array de caracteres ("vetor de char") não é conhecido por "string". É um array de caracteres...

 

2-Quando a string não tem o "\0" (que indica para a string parar a sequencia de caracteres) e eu imprimo o valor dela, aparece um lixo na tela, esse lixo vem da onde?

(curiosidade: brincando um pouco com meus códigos, eu descobri um bagulho muito legal: eu consido adicionar o \0 na hora q to atribuindo a string, ex:

char nome[] = "Math\0eus";

se eu tentar imprimir na tela só vai aparecer o "Math", achei isso muito dhr, apesar de não ver funcionalidades, melhor deixar pro computador adicionar esse \0 mesmo né kkk)

 

bom é isso....

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@Matheus Marcelino Santos    na linguagem C , tem dados do tipo : int , float , double , long , char e bool , mas não tem o tipo "string" , e então usa se um vetor de caracteres "char vetor[ ]" para armazenar os caracteres , pois se for apenas um caractere  não precisa ser vetor , pode ser um variável simples , que armazena apenas um caractere ,  então

8 horas atrás, Matheus Marcelino Santos disse:

String e array de caracteres são a mesma coisa?

sim , o Array e string são a mesma coisa , pois recebe/aceita qualquer caractere .

8 horas atrás, Matheus Marcelino Santos disse:

parece um lixo na tela, esse lixo vem da onde?

isso na verdade não é lixo , são dados armazenados na memória , onde todos os bytes são preenchidos com algum valor por outros programas que estejam rodando ao mesmo tempo ou até os que já foram fechados , mas os dados permanecem guardados na memória , por isso não se pode excluir o que esteja na memória , mas apenas substituir por outro valor ,  e assim o que aparece na tela é o que está armazenado na memória , e o compilador vai escrever os caracteres até encontrar um zero "0" do tipo inteiro , ou um '\0'  que tem o mesmo significado  de finalizar a string .    mas tem diferença a forma como o zero é inserido :

#include <stdio.h>
#include <string.h>  
int main()
{
  char string[] = "math\0eus"; /// aqui escreve apenas "math"
  char string[] = "math0eus";  /// aqui escreve "math0eus"
  char string[] = "matheus"; 
  string[4] = 0;               /// aqui tambEm só escreve "math"
  printf("A string= %s\n",string);  
  return 0;
}
 

 

  • Curtir 1
  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

Em 06/01/2024 às 12:44, Matheus Marcelino Santos disse:

String e array de caracteres são a mesma coisa?

O que dizem nos guias da Linguagem de Programação C?

 

— Suponho que algo semelhante à Stringé uma sequência finita de elementos dum alfabeto, sendo algum meio de variável ou constante literal de bytes contíguos, quase sempre legíveis, que na computação denotam array ou matriz normalmente de caracteres — porque, muitas vezes, depende dessa estrutura e tipo de dados.

 

E daí?

— Daí o motivo desta resposta

Em 06/01/2024 às 12:44, Matheus Marcelino Santos disse:

no site stack overflow uma pessoa disse: "Um array de caracteres ("vetor de char") não é conhecido por "string"

 

Suponho que, dependendo da Filosofia C do autor, string denotará arranjo de char ou arranjo de qualquer tipo na implementação que estruturar o texto.

 

Ou somente uma sequência de caracteres. 

 

 

Então  

— Concordo com @devair1010, porque tradicionalmente string é composta de dados legíveis por humanos sobre estrutura de dados de array de tipo caractere (char: byte).

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...
Em 06/01/2024 às 12:44, Matheus Marcelino Santos disse:

Eu tenho algumas dúvidas sobre string/array de caracteres em C

 

pois aprendi que char string[];

Isso é uma pegadinha. Acontece que "string" é um tipo de variável em outras linguagens, assim como char é um tipo de variável em c. Mas aqui nessa sua sentença 'char string[];' a palavra string não é um tipo mas sim o nome da variável, que é do tipo array de char (que no fundo é uma forma da linguagem C fazer uma string). Entendeu? é confuso mas é isso basicamente.

A string (corda, ao pé da letra me inglês), geralmente é um tipo de variável que armazena uma linha caracteres. No C, como não existe o tipo 'string', a forma de armazenar vários caracteres é através de um array(arranjo) do tipo char.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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!