首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将未知长度的格式化数据写入字符串(C编程)

在C编程中,将未知长度的格式化数据写入字符串的方法是使用动态内存分配和字符串连接。以下是一个简单的示例,说明如何实现这一点:

  1. 使用malloc()函数动态分配内存。
  2. 使用sprintf()函数将格式化数据写入字符串。
  3. 使用realloc()函数调整内存大小以适应新的字符串长度。
  4. 使用strcat()函数连接字符串。

以下是一个示例代码:

代码语言:c
复制
#include<stdio.h>
#include <stdlib.h>
#include<string.h>

int main() {
    char *str = NULL;
    int length = 0;

    // 动态分配内存
    str = (char *) malloc(1);
    if (str == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }
    str[0] = '\0';

    // 将未知长度的格式化数据写入字符串
    for (int i = 0; i < 5; i++) {
        char temp[50];
        sprintf(temp, "Hello %d\n", i);

        // 调整内存大小
        length += strlen(temp) + 1;
        str = (char *) realloc(str, length);
        if (str == NULL) {
            printf("Memory allocation failed\n");
            return 1;
        }

        // 连接字符串
        strcat(str, temp);
    }

    printf("Final string: %s", str);

    // 释放内存
    free(str);

    return 0;
}

这个示例代码将输出以下内容:

代码语言:txt
复制
Final string: Hello 0
Hello 1
Hello 2
Hello 3
Hello 4

在这个示例中,我们使用malloc()realloc()free()函数来动态管理内存,使用sprintf()函数将格式化数据写入字符串,使用strcat()函数连接字符串。这种方法可以处理任意长度的格式化数据,而无需预先知道字符串的确切长度。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

42分42秒

ClickHouse在有赞的使用和优化

领券