编写进制转换函数itos(int n,int k,char* s),将一个十进制整数转换成k进制字符,c语言,用指针
时间: 2023-12-10 09:43:00 浏览: 165
以下是一个将十进制整数转换为k进制字符的函数itos,使用指针:
```c
void itos(int n, int k, char *s) {
int i = 0;
while (n > 0) {
int remainder = n % k;
if (remainder < 10) {
s[i] = remainder + '0';
} else {
s[i] = remainder - 10 + 'A';
}
n /= k;
i++;
}
s[i] = '\0';
int len = i;
for (i = 0; i < len / 2; i++) {
char tmp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = tmp;
}
}
```
函数接受三个参数:要转换的十进制整数n,目标进制k,以及一个指向字符数组的指针s,用于存储转换后的结果。
函数实现将十进制整数n除以k,一位一位地转换成对应的字符,并将结果存储在字符数组s中。如果余数小于10,则将其转换成对应的数字字符;否则,将其转换成对应的十六进制大写字母字符。最后,反转字符数组s中的元素,以得到正确的转换结果。
例如,调用`itos(1234, 16, s)`将返回一个长度为4的字符数组s,其中存储着十进制整数1234的十六进制表示"4D2"。
阅读全文