我正在为学校做一个作业,用于交换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);
}
答案 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(对于无符号)
您似乎没有尝试过互换,我能看到您的尝试吗?