Converter Inteiro para Char em C

Satishkumar Bharadwaj 12 outubro 2023
  1. Adicione '0' para converter int para char em C
  2. Atribua um Valor int a um Valor char para Converter int para char em C
  3. Use a Função sprintf() para Converter int em char em C
  4. Conclusão
Converter Inteiro para Char em C

Converter um inteiro em um caractere na linguagem de programação C pode ser essencial em vários cenários. Caracteres em C são representados como valores ASCII, o que torna relativamente simples realizar essa conversão.

Este tutorial explora vários métodos para converter um inteiro em um caractere em C, variando desde adição simples até conversão de tipo explícita e utilização da função sprintf().

Adicione '0' para converter int para char em C

O valor ASCII de '0' é 48. Portanto, adicionando seu valor a um inteiro irá convertê-lo no caractere correspondente.

Aqui está um programa completo em C demonstrando esse método:

#include <stdio.h>
int main(void) {
  int number = 71;

  char charValue = number + '0';
  printf("The character value is: %c", charValue);

  return 0;
}

Saída:

The character value is: w

Sabemos que '0' tem um valor ASCII de 48, e ao adicionar 71 a 48 resulta em 119. No conjunto de caracteres ASCII, o valor 119 corresponde ao caractere w.

Portanto, a saída do programa exibe o valor do caractere w.

Além disso, para converter inteiros dentro da faixa de 0 a 9 para caracteres, podemos usar a mesma abordagem:

#include <stdio.h>
int main(void) {
  int number = 7;
  char charValue = number + '0';
  printf("The value is: %c", charValue);
  return 0;
}

Saída:

The value is: 7

Aqui, o código declara uma variável caractere chamada charValue e também computa seu valor adicionando o inteiro armazenado em number ao valor ASCII de '0'.

Em C, caracteres são representados como inteiros com base na codificação ASCII, então essa operação converte efetivamente o inteiro 7 para o caractere '7'.

Outro programa para converter um valor inteiro em um caractere é mostrado abaixo:

#include <stdio.h>

int main(void) {
  char charValue[] = "stringValueX";
  int anyNumber;
  for (anyNumber = 0; anyNumber < 10; ++anyNumber) {
    charValue[11] = anyNumber + '0';
    puts(charValue);
  }
  return 0;
}

Saída:

stringValue0
stringValue1
stringValue2
stringValue3
stringValue4
stringValue5
stringValue6
stringValue7
stringValue8
stringValue9

O código fornecido acima começa inicializando um array de caracteres chamado charValue com a string "stringValueX" e declarando uma variável inteira chamada anyNumber.

Ele então entra em um loop for que itera de 0 a 9. Dentro do loop, o código substitui o caractere no índice 11 de charValue adicionando o valor de anyNumber ao valor ASCII de '0', substituindo efetivamente o X por números de 0 a 9.

A função puts(charValue) imprime o charValue modificado em cada iteração em linhas separadas. Como resultado, o programa gera uma saída na qual "stringValueX" é exibido com o X substituído pelos números de 0 a 9, cada um aparecendo em sua linha.

Atribua um Valor int a um Valor char para Converter int para char em C

Outra maneira de converter um valor inteiro em um valor caractere é atribuir diretamente o inteiro a uma variável caractere. O valor caractere correspondente ao valor inteiro será impresso.

Aqui está um exemplo:

#include <stdio.h>

int main(void) {
  int number = 65;
  char charvalue = number;

  printf("The character value: %c", charvalue);

  return 0;
}

Saída:

The character value: A

Também podemos usar conversão de tipo explícita para converter um inteiro em um caractere. Veja o código de exemplo abaixo.

#include <stdio.h>
int main(void) {
  int number = 67;
  char charValue = (char)number;
  printf("The character value = %c", charValue);

  return 0;
}

Saída:

The character value = C

Aqui, o programa converte explicitamente o valor inteiro de number em um caractere usando (char) antes do nome da variável. Essa conversão de tipo informa ao compilador para tratar number como um caractere.

Use a Função sprintf() para Converter int em char em C

A função sprintf() funciona da mesma forma que a função printf() , mas em vez de enviar a saída para o console, ela retorna a string formatada. Isso nos permite converter um inteiro em um caractere e armazená-lo em uma string.

Sintaxe do sprintf()

int sprintf(char *strValue, const char *format, [ arg1, arg2, ... ]);
  • strValue é um ponteiro para o tipo de dados char.
  • format é usado para exibir o tipo de saída juntamente com o espaço reservado.
  • [arg1,arg2...] são os inteiro(s) a serem convertidos.

A função escreve os dados na string apontada por strValue e retorna o número de caracteres escritos em strValue, excluindo o caractere nulo. O valor de retorno é geralmente descartado.

Se algum erro ocorrer durante a operação, ele retorna -1.

Aqui está um exemplo:

#include <stdio.h>
int main(void) {
  int number = 72;
  char charValue[1];

  sprintf(charValue, "%c", number);
  printf("The character value = %s", charValue);

  return 0;
}

Saída:

The character value = H

Neste exemplo, usamos sprintf() para converter o inteiro 72 no caractere H e armazenamos isso no array charValue. É crucial garantir que o array de caracteres (charValue) seja grande o suficiente para conter o char convertido.

Conclusão

Neste tutorial, exploramos várias abordagens para converter inteiros em caracteres na linguagem de programação C. Cada método oferece suas vantagens e casos de uso, permitindo que você escolha a abordagem mais adequada com base em suas necessidades específicas de programação.

Artigo relacionado - C Integer

Artigo relacionado - C Char