c语言,如何将多种类型数据组成一个字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言,如何将多种类型数据组成一个字符串相关的知识,希望对你有一定的参考价值。

比如定义
char buf[100];
现在有int num; void *mem; size_t bytes;要将这三个类型的数据放到 buf里 ,并且将数据buf输入到一个.txt文件里

# include <stdio.h>

int main(void)

    int num = 10;
    void *mem = &num;
    size_t bytes = 100;
    char buf[100];
    FILE *p = fopen("D:\\\\abc.txt", "w");
    if (NULL == p)
        return -1;
    
    sprintf(buf, "%d %p %ud", num, mem, bytes);
    fprintf(p, "%s", buf);
    fclose(p);
    

参考技术A

1、使用sprintf函数即可。

函数功能:把格式化的数据写入某个字符串
函数原型:int sprintf( char *buffer, const char *format [, argument] … );
返回值:字符串长度(strlen)
例子:
char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "  这字符串写到s中

2、例程:

#include <stdio.h>
int main(void)

    int num = 10;
    void *mem = &num;
    size_t bytes = 100;
    char buf[100];
    FILE *p = fopen("D:\\\\abc.txt", "w");
    if (NULL == p)
        return -1;
     
    sprintf(buf, "%d %p %ud", num, mem, bytes);
    fprintf(p, "%s", buf);
    fclose(p);
     

参考技术B 先sprintf 后 写文件,写文件相信你是 会滴
sprintf(buf, "%d,%x,%d", num mem, bytes);追问

%x 是unsigned int 类型的 但是mem是 void*类型的

追答

指针变量用来存放 地址 x86 32位系统上 内存地址 是4个字节的无符号数 %x 是用来输出十六进制

你要是愿意可以输出%u

c语言如何将数组转成字符串

参考技术A 数组是指针,如果是字符数据就已经是字符串了,其它类型可以使用对应的函数转换,如inttostr,floattostr等。

以上是关于c语言,如何将多种类型数据组成一个字符串的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何将一个数字组成的字符串转变成十进制数

C语言如何将int类型转换成字符串

如何封装C语言的字符串相关功能

c语言如何将数组转成字符串

go语言:数组

C#中的“定义字符串变量”是啥意思。