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

  1. Escrever dados formatados em strings
  2. Ler dados formatados de strings

Em C: Entrada e Saída aprendemos a ler e escrever dados formatados utilizando as funções scanf e printf. Nesta parte do tutorial vamos aprender a ler e escrever dados formatados em/de strings.

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

Os caracteres de escape e identificadores de formatação foram vistos em C Saída de dados: Printf sendo a leitura recomendada.

Para essa parte do tutorial precisamos utilizar a biblioteca <stdlib.h> que deve ser incluída.

Sintaxe
#include <stdlib.h>

Em seções anteriores, vimos como imprimir na tela as informações de nossos programas utilizando a função printf. Porém, em certas situações precisamos imprimir informações dentro de uma string. Para isso, a stdlib fornece a função sprintf.

Sintaxe
int sprintf( char * str, const char * format, ... );
Onde
str: ponteiro para a string onde queremos imprimir nossos valores.
format: ponteiro para string com os identificadores de formatação. Ex: %d,%f,%x e etc.
...: lista de variáveis contendo os valores para escrita
Retorno
int contendo número de caracteres escritos, caso contrário um número negativo.
Exemplo 1
#include <stdio.h>

void main ()
{
  float valor = 1.99;
  int produto = 1;
  char string[100];
  
  sprintf(string,"O produto %d possui o Preço R$%0.2f",produto ,valor);
  printf("%s",string);
}
Saída
O produto 1 possui o Preço R$1.99

Em seções anteriores, vimos como ler informações digitadas pelo usuário em nossos programas utilizando a função scanf. Em certas situações precisamos recuperar informações que estão dentro de uma string. A stdlib fornece a função sscanf.

Sintaxe
int sscanf(const char *str, const char *format, ...)
Onde
str: ponteiro para string contendo os que valores que desejamos ler.
format: ponteiro para string contendo os idenficadores de formatação. Ex: %d,%f,%x e etc.
...: lista de variáveis onde os valores serão salvos
Retorno
Número de variáveis preenchidas ou EOF(End-of-file) caso haja erro na leitura.
Exemplo 2
#include <stdio.h>

int main ()
{
    
  char string[]="Tênis custa R$1.99";
  char produto[50];
  float preco;
  
  //%*s para ignorar palavras não desejadas
  //%*2c para ignorar R$
  sscanf(string,"%s %*s %*2c%f",produto,&preco);

  printf("Produto: %s \nPreço: R$%0.2f",produto,preco);
}
Saída
Produto: Tênis 
Preço: R$1.99
  1. 11/03/2025 - revisão 3 - Correção em saída de Ex. 2
  2. 08/10/2024 - revisão 2 - Ajustes pontuais
  3. 28/09/2023 - revisão 1 - Correção em referências, erros gramaticais
  4. 19/05/2023 - versão inicial