在C中使用Sprintf函数

时间:2014-07-18 10:52:14

标签: c string printf

如何在sprintf函数中包含另一个字符串。请参阅示例 - \

char data[6] = {0x20, 0x20, 0x20, 0x20, 0x20, 0x20};
char buff[50];

sprintf(buff, "I want to add this string - < ? >",data) ;
  1. 我的问题是这是否有效?
  2. 如果是,那么我应该添加什么是正确的访问说明符。 %s无效。
  3. 我希望我的buff会像 - 我想添加此字符串 - 202020202020

    请建议。

3 个答案:

答案 0 :(得分:4)

sprintf用于将任何数据转换为String。

您的数据是十六进制数据。所以使用%x格式说明符。

试试此代码

sprintf(buff,"%x%x%x%x%x%x",data[0],data[1],data[2],data[3],data[4],data[5]);
printf("%s\n",buff);

它会将结果显示为202020202020

答案 1 :(得分:4)

#include <stdio.h>

int main(){
    int i, len = 0;
    char data[6] = {0x20, 0x20, 0x20, 0x20, 0x20, 0x20};
    char buff[50];

    for(i=0;i<sizeof(data);++i){
        len += sprintf(buff + len, "%02x", (unsigned char)data[i]);
    }
    printf("%s\n", buff);
    return 0;
}

答案 2 :(得分:0)

Sprintf用于打印到字符串。它类似于printf,区别在于输出是字符串而不是控制台。