sprintf - 从C中的int生成char数组

时间:2017-09-09 16:42:55

标签: c printf character

我正在为学校做一个作业,用于交换unsigned long中的字节,并返回交换的unsigned long。恩。 0x12345678 - > 0x34127856。  我想我会创建一个char数组,使用sprintf将long插入一个char数组,然后进行交换,逐步遍历数组。我对c ++很熟悉,但C似乎有点低级。我研究了一些关于sprintf的主题,我尝试制作一个数组,但我不确定它为什么不起作用。

unsigned long swap_bytes(unsigned long n) {
char new[64];

sprintf(new, "%l", n);

printf("Char array is now: %s\n", new);
}

2 个答案:

答案 0 :(得分:2)

unsigned long swap_bytes(unsigned long n) { 
    char new[64];
    sprintf(new, "%lu", n);
    printf("Char array is now: %s\n", new);
}

你需要使用%lu - long unsigned,对于sprintf()中的格式,编译器也应该为你提供转换缺少类型警告。

答案 1 :(得分:0)

要使其打印,您需要使用%lu(对于无符号)

您似乎没有尝试过互换,我能看到您的尝试吗?