Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Conversão de string para int
  2. Conversão de string para float e/ou double
  3. Conversão de caracteres maiúsculo/minúsculos
  4. Convesão string para hex
  5. Convesão hex para string

Mais sobre conversão pode ser visto em C String: Formatação onde outras funções são utilizadas.

Nesta parte do tutorial vamos aprender a converter um valor númerico contido em uma string para os tipos de dados int, float ou double.

Os tipos de dados int,float e double foram vistos em C: Tipos Numéricos sendo a leitura recomendada.

Para trabalharmos com as conversões, precisamos utilizar a biblioteca <stdlib.h> que deve ser incluída no topo de nosso arquivo main.c.

Sintaxe
#include <stdlib.h>

Para convertermos valor númericos contidos em uma string para int, utilizamos a função atoi. Sua sintaxe é bem simples e é mostrada abaixo:

Sintaxe
int atoi(const char *str)
Onde
str: string contendo valor numérico para conversão
Retorno
str convertida para int ou -1 caso não seja possível a conversão
Exemplo 1
#include <stdio.h>     
#include <stdlib.h>

void main ()
{
  int i;
  char string[]="2023";
  int valor = atoi(string);
  printf("Valor: %d",valor);
}
Saída
2023

Para convertermos valor númericos contidos em uma string para float ou double, utilizamos as funções strtod e/ou strtof. A sintaxe de ambas as funções pode ser conferida abaixo:

Sintaxe
double strtod(const char* str, char** endptr);
float strtof(const char* str, char** endptr);
Onde
str: string contendo valor numérico para conversão
Retorno
str convertida para float ou double ou -1 caso não seja possível a conversão.
Exemplo 2
#include <stdio.h>     
#include <stdlib.h>

void main ()
{
  int i;
  char string[]="10.02";
  
  double valor = strtod(string,NULL);
  float valor2 = strtof(string,NULL);

  printf("Valor: %0.2f \n",valor);
  printf("Valor: %0.2f \n",valor2);
}
Saída
Valor: 10.02 
Valor: 10.02

Para a conversão básica, não é necessário a utilização do parâmetro endptr bastando passar NULL como argumento para a função.

Para a conversão entre caracteres maiúsculos e minúsculos, a linguagem C fornece as funções toupper e tolower. A primeira função converter um caracter para sua versão maiúscula(caixa alta) e a segunda para sua versão minúscula(caixa baixa).

Sintaxe

int tolower( int c );
int toupper( int c );
Onde
c: caractere para conversão
Retorno

Se a conversão for bem sucedida, retorna c em forma maisúcula/minúscula, 
Caso contrário, o caractere c é retornado.
Exemplo 3: toupper
#include <stdio.h>     
#include <stdlib.h>

void main ()
{
  int i;
  char string[]="teste TOUPPER";
  long int tam = strlen(string);
  
  for(i=0 ;i < tam ; i++)
  {
    printf("%c",toupper(string[i]));
  }
}
Saída
TESTE TOUPPER
Exemplo 4: tolower
#include <stdio.h>     
#include <stdlib.h>

void main ()
{
  int i;
  char string[]="TESTE tolower";
  long int tam = strlen(string);
  
  for(i=0 ;i < tam ; i++)
  {
    printf("%c",tolower(string[i]));
  }
}
Saída
teste tolower
  1. 08/10/2024 - revisão 2 - Ajustes pontuais
  2. 28/09/2023 - revisão 1 - Correção em referências, erros gramaticais e layout
  3. 19/05/2023 - versão inicial