English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Linguagem C

Controle de Fluxo de Linguagem C

Função C

Array C

Ponteiro C

String C

Estrutura de Linguagem C

Arquivo de Linguagem C

Outros C

Manual de Referência do Linguagem C

Uso e exemplo da função sprintf() da biblioteca C

Biblioteca padrão C - <stdio.h>

função da biblioteca C int sprintf(char *str, const char *format, ...) enviar saída formatada para str string apontada.

declaração

Aqui está a declaração da função sprintf().

int sprintf(char *str, const char *format, ...)

parâmetros

  • str -- Esta é uma referência para um array de caracteres, que armazena uma string C.
  • format -- Esta é uma string que contém o texto a ser escrito na string str. Ela pode conter etiquetas format, que podem ser substituídas pelos valores especificados nos parâmetros subsequentes e formatadas conforme necessário. As propriedades das etiquetas format são %[flags][width][.precision][length]specifier,explicado detalhadamente a seguir:
specifier (especificador)saída
ccaracteres
d ou iinteiro decimal com sinal
eusar o caractere e para a notação científica (número e expoente)
Eusar o caractere E para a notação científica (número e expoente)
fnúmero de ponto flutuante decimal
gescolherá automaticamente a representação apropriada entre %e ou %f
Gescolherá automaticamente a representação apropriada entre %E ou %f
ooctal com sinal
sstring de caracteres
uinteiro decimal sem sinal
xinteiro hexadecimal sem sinal
Xinteiro hexadecimal sem sinal (letras maiúsculas)
pendereço de ponteiro
nsem saída
%caracteres

flags (identificadores)Descrição
-Alinhamento à esquerda dentro do campo width dado, o padrão é alinhamento à direita (ver o subespecificador width).
+Forçará a exibição de um sinal de mais ou menos antes do resultado (+ ou -),isto é, números positivos terão + número. Pelo padrão, apenas números negativos terão um - número.
(espaço)Se nenhum símbolo for escrito, uma espaço será inserida antes do valor.
#Ao usar com os especificadores o, x ou X, valores não nulos serão exibidos antes com 0, 0x ou 0X, respectivamente.
Ao usar com e, E e f, forçará a saída de um ponto decimal, mesmo que não haja números após ele. Pelo padrão, se não houver números após ele, o ponto decimal não será exibido.
与 g 或 G 一起使用时,结果与使用 e 或 E 时相同,但是尾部的零不会被移除。
0Quando usado com g ou G, o resultado é o mesmo que usar e ou E, mas os zeros ao final não são removidos.

Coloca zeros (0) à esquerda do número especificado para preencher o padding, em vez de espaços (veja o subdescritor width).Descrição
width (largura)(number)
*Width não especificado na string formatada, mas será colocado como um valor inteiro adicional antes do parâmetro a ser formatado. O número mínimo de caracteres a serem output. Se o valor output for menor que esse número, o resultado será preenchido com espaços. Se o valor output for maior que esse número, o resultado não será truncado.

.precision (precisão)Descrição
.numberPara os descritores inteiros (d, i, o, u, x, X): a precisão especifica o número mínimo de dígitos a serem escritos pelo número. Se o valor escrito for menor que esse número, o resultado será preenchido com zeros à esquerda. Se o valor escrito for maior que esse número, o resultado não será truncado. Uma precisão de 0 significa que nenhum caractere será escrito.
Para os descritores e, E e f: o número de dígitos decimais a serem output após o ponto decimal.
Para os descritores g e G: o número máximo de dígitos significativos a serem output.
Para s: o número máximo de caracteres a serem output. Padrão é output todos os caracteres até o caractere nulo final.
Para o tipo c: não tem nenhum efeito.
Quando não especificada, o padrão é 1.
.*A precisão não especificada na string formatada, mas será colocada como um valor inteiro adicional antes do parâmetro a ser formatado. Se especificado sem um valor explícito, assume-se 0.

length (tamanho)Descrição
hOs parâmetros são interpretados como short ou unsigned short (apenas para os descritores de números inteiros: i, d, o, u, x e X).
lOs parâmetros são interpretados como long ou unsigned long, aplicáveis aos descritores de números inteiros (i, d, o, u, x e X) e ao descritor c (representando um caractere largura) e s (representando uma string de caracteres largura).
LOs parâmetros são interpretados como long double (apenas para os descritores de números de ponto flutuante: e, E, f, g e G).
  • Parâmetros adicionais -- De acordo com diferentes strings formatadas, a função pode precisar de uma série de parâmetros adicionais, cada um contendo um valor a ser inserido, substituindo cada etiqueta % especificada no parâmetro format. O número de parâmetros deve ser igual ao número de etiquetas %.

Retorno

Se bem-sucedido, retorna o número total de caracteres escritos, sem incluir o caractere nulo adicionado ao final da string. Se falhar, retorna um número negativo.

Exemplo online

O exemplo a seguir demonstra o uso da função sprintf().

#include <stdio.h>
#include <math.h>
int main()
{
   char str[80];
   sprintf(str, "O valor de Pi = %f", M_PI);
   puts(str);
   return(0);
}

Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:

O valor de Pi = 3.141593

Biblioteca padrão C - <stdio.h>