练习 4-12 运用 printd 函数的设计思想编写一个递归版本的 itoa 函数,即通过递归 调用把整数转换为字符串
2017-11-08 09:10
1521 查看
#include <stdio.h>
/*Stat:founded in 2017.11.8*/
char *itoa(char *s,int n,int base)
{
char *p,*q;
unsigned number;
q = "0123456789abcdefghijklmnopqrstuvwxyz"; /*有点小瑕疵:最后返回指针的逆序 (求修改)*/
if(base == 0)
base = 10;
if(s == NULL || base < 2 || base > 36)
return NULL;
p = s;
if(n < 0)
{
*p++ = '-';
number = -n;
}
else
number = n;
if(number / base)
p = itoa(p,number / base,base);
*p = q[number % base];
*(++p) = '\0';
return p;
}
int main(void)
{
char s[100];
int n,b;
while(scanf("%d%d",&n,&b))
{
itoa(s,n,b);
printf("%s\n",s);
}
return 0;
}
/*Stat:founded in 2017.11.8*/
char *itoa(char *s,int n,int base)
{
char *p,*q;
unsigned number;
q = "0123456789abcdefghijklmnopqrstuvwxyz"; /*有点小瑕疵:最后返回指针的逆序 (求修改)*/
if(base == 0)
base = 10;
if(s == NULL || base < 2 || base > 36)
return NULL;
p = s;
if(n < 0)
{
*p++ = '-';
number = -n;
}
else
number = n;
if(number / base)
p = itoa(p,number / base,base);
*p = q[number % base];
*(++p) = '\0';
return p;
}
int main(void)
{
char s[100];
int n,b;
while(scanf("%d%d",&n,&b))
{
itoa(s,n,b);
printf("%s\n",s);
}
return 0;
}
相关文章推荐
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数) 例如:“12“ 返回12 “-123“ 返回-123 函数原型:int my_atoi(char *str) {}
- 练习 4-13 编写一个递归版本的 reverse(s)函数,以将字符串 s 倒置
- 编写函数,其功能是:将一个数字字符串转换为一个整数(不得调用C语言中提供的将字符串转换成整数的函数。)要求在主函数中输入该字符串并输出转换后的整数的值。
- 编写一个函数将一个十六进制数的字符串参数转换成整数返回
- 编写一个函数将一个十六进制数的字符串参数转换成整数返回
- 练习 3-2 编写一个函数escape(s, t),将字符串t 复制到字符串s 中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。
- 【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 请编写一个 C 函数,该函数将给定的一个整数转换成字符串
- 【C语言】为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。
- 编写一个函数将一个十六进制数的字符串参数转换成整数返回
- 练习 3-2 编写一个函数escape(s, t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- go语言练习 : 编写一个非递归版本的comma函数,使用bytes.Buffer代替字符串链接操作。
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 导师作业:2、编写一个函数,将一个整数值转换为16进制表示的字符串。
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数,负整数)
- [导入]一个将整数转换成字符串的函数itoa
- 【c语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 练习3-2 编写一个函数escape(s,t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符转换为\n、\t等相应的可见的转义字符序列。要求使用switch语句。
- 【c语言】为下面的函数原型编写函数定义,这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。