如何使用sprint()函数将输出重定向到一个格式化的字符串

1,116 阅读2分钟

在本指南中,我们将讨论如何在C程序中使用sprintf函数。sprintf函数用于将一个格式化的字符串写入一个字符串缓冲区。

让我们来讨论如何使用这个函数,并通过各种例子来说明。

基本用法

sprintf函数定义在stdio.h头文件中;它接受一个格式化的字符串并写入一个字符串缓冲区。可以把它看作是printf函数,但不是写到控制台,而是将输出发送到一个格式化的字符串。

sprintf函数的基本语法如下。

int sprintf(char* buff, const char* fmt, …);

Sprintf参数

以下是sprintf函数所接受的参数。

  1. buff -这是一个指向字符串缓冲区的指针,结果被写入缓冲区。
  2. fmt -这是一个指向写到文件流的字符串的指针。
  3. ...-这代表其他参数,如宽度、精度、长度和一个指定器。要了解更多关于printf函数系列的信息,请使用man printf命令。

sprint()函数将数据写入缓冲区所指向的字符串中。

返回值

sprintf函数有一个整数的返回类型。成功时,该函数返回写到缓冲区的字符数,不包括空结尾字符。

失败时,该函数返回一个负的整数值。

例子1

下面是一个在C语言中使用sprint()函数的例子。

#include
#include

int main() {
    int age;
    char name[30], country[30], details[100];

    printf("Enter your name: ");
    fgets(name, 30, stdin);

    printf("Enter your country: ");
    fgets(country, 30, stdin);

    printf("Enter your age: ");
    scanf("%d", &age);

    sprintf(details, "Name: %s Age: %d  Country: %s ", name, age, country);
    printf("details: \n\n %s", details);
}

在上面的例子中,我们创建了一个包含姓名、国家和年龄等值的格式化字符串。使用各种指定器,我们可以将变量注入字符串中。

这些指定符包括。

  1. %c - 用于字符变量。
  2. %d 或 %i - 有符号的整数
  3. %f - 浮点
  4. %s - 字符串。
  5. %p - 指针 地址

示例2

我们还可以使用sprint()函数将整数或浮点数转换为字符串类型。看一下下面的例子程序。

#include
#include

int main() {
    char after[10];
    float var = 3.14159;
    // var is a float before sprintf
    printf("Before sprintf %f \n", var);

    // now its a string
    sprintf(after, "%f", var);
    printf("After sprintf %s \n", after);
}

在上面的例子中,我们使用sprint()函数将一个浮动指针值转换为一个字符串。

闭合

在本教程中,我们讨论了如何使用sprint()函数将输出重定向到一个格式化的字符串。sprint()函数在特定条件下很有用。请查看手册以了解更多。