基本上,我在这里具有此功能,当输入十进制值时,该功能会吐出一个十六进制值。这段代码工作得很好,但是当我逐字将其插入到我正在处理的一大组代码中时,十六进制数字吐出有8个多余的多余字符,后跟正确的十六进制值。关于如何解决它的任何想法?有人告诉我终止字符串十六进制,但是我该在哪里正确执行以及如何执行?
#include <stdio.h>
#include <string.h>
int main(void){
int decimalnum, quotient, remainder;
int k, l = 0;
char hexadecimalnum[100];
char str[50];
int m;
char temp;
int j;
printf("enter decimal number: ");
scanf("%d", &decimalnum);
quotient = decimalnum;
while (quotient != 0) {
remainder = quotient % 16;
if(remainder < 10) {
hexadecimalnum[l++] = 48 + remainder;
}
else {
hexadecimalnum[l++] = 55 + remainder;
}
quotient = quotient / 16;
}
// Display integer to character.
for(k = l; k >= 0; k--) {
str[k] = hexadecimalnum[k];
}
m = 0;
j = l-1;
// Flip the string because it is written backwards.
while(m <j) {
temp = str[m];
str[m] = str[j];
str[j] = temp;
m++;
j--;
}
printf("\n%s\n", str);
return 0;
答案 0 :(得分:3)
在while循环后添加hexadecimalnum[l] = 0;
。您需要终止字符串