编写函数itob(n,s,b),用于把整数n转换成以b为基的字符串并存储到s中. 编写程序,使用函数itob(n,s,b)将输入的整数n,转换成字符串s,将s输出.转换后的字符串从最高的非零位开始输出。如果n为负数,则输出的字符串的第一个字符为'-'。b为大于1小于37的任意自然数值。当b=2时,输出字符只可能是'0'和'1';当b=16时,输出字符串中可能含有字符为'0'-'9','a'-'f'(字母以小写输出)。b还可以是其它数值。比如输入n=33,b=17,则输出33的17进制值为"1g"。C语言
时间: 2023-06-07 16:07:46 浏览: 220
在主函数中输入一含有大写字母的字符串,调用该函数并输出改变后的字符串。
实现如下:
```c
#include<stdio.h>
#include<stdlib.h>
// 将整数n转换成以b为基的字符串并存储到s中
void itob(int n, char* s, int b){
int i = 0;
int sign = 1;
if(n < 0){
sign = -1;
n = -n;
}
while(n != 0){
int r = n % b;
if(r < 10){
s[i++] = '0' + r;
} else{
s[i++] = 'a' + (r-10);
}
n /= b;
}
if(sign < 0){
s[i++] = '-';
}
s[i] = '\0';
strrev(s); // 将字符串翻转,从高位开始输出
}
int main(){
int n, b;
char s[100];
printf("请输入整数n: ");
scanf("%d", &n);
printf("请输入基数b: ");
scanf("%d", &b);
itob(n, s, b);
printf("%s\n", s);
return 0;
}
```
注意,在`itob`函数中,我们使用了库函数`strrev`来将字符串翻转,从高位开始输出。该函数在`string.h`头文件中声明。
阅读全文