通过递归调用把整数转换成字符
2016-05-22 21:59
190 查看
#include <stdio.h>
#define MAXLINE 100
#define is_other 1
#define is_digital 2
//通过递归调用把整数转换成字符;
void printd(int n)
{
if (n < 0)
{
putchar('-');
n = - n ;
}
if (n > 0)
{
printd(n / 10);
putchar(n % 10 + '0');
}
}
void copy(char to[] , char from[])
{
int i;
i = 0;
while ((to[i]=from[i]) != '\0')
++i;
}
int main(void)
{
char getline[MAXLINE];
char done[MAXLINE];
int i , c , state , id;
i = 0;
while((c = getchar())!= '#')
{
getline[i++] = c;
if (getline[i] >= '0' && getline[i] <= '9')
{
state = is_digital;
id = getline[i];
printd(id);
}
else if((getline[i] >= 'A' && getline[i] <= 'Z') || (getline[i] >= 'a' && getline[i] <= 'z'))
{
state =is_other;
copy(done ,getline);
printf("%s",done);
}
}
return 0;
}
#define MAXLINE 100
#define is_other 1
#define is_digital 2
//通过递归调用把整数转换成字符;
void printd(int n)
{
if (n < 0)
{
putchar('-');
n = - n ;
}
if (n > 0)
{
printd(n / 10);
putchar(n % 10 + '0');
}
}
void copy(char to[] , char from[])
{
int i;
i = 0;
while ((to[i]=from[i]) != '\0')
++i;
}
int main(void)
{
char getline[MAXLINE];
char done[MAXLINE];
int i , c , state , id;
i = 0;
while((c = getchar())!= '#')
{
getline[i++] = c;
if (getline[i] >= '0' && getline[i] <= '9')
{
state = is_digital;
id = getline[i];
printd(id);
}
else if((getline[i] >= 'A' && getline[i] <= 'Z') || (getline[i] >= 'a' && getline[i] <= 'z'))
{
state =is_other;
copy(done ,getline);
printf("%s",done);
}
}
return 0;
}
相关文章推荐
- OpenCV3.1 的缺点
- ASP.NET Identity 修改表名和主键类型
- Gym Class(拓扑排序)
- 计算机程序的构造和解释 折半查找法
- 一些离散数学术语
- Centos 6.x 升级python到2.7以及easy_install和pip
- hdu 区间的价值(RMQ+扫描)
- Hama 修改log4j日志
- 数据结构实验之栈六:下一较大值(二)
- Manacher算法 , 实例 详解 . NYOJ 最长回文
- android studio 提示 “Gradle project sync failed”
- html前端代码
- LeetCode 344:Reverse String
- 主键生成策略
- 主键生成策略
- DELL R710 错误代码汇总
- nodejs和mongodb实践
- CSS高效开发实战笔记 123
- linux下date命令得到今天日期的用法
- 大数模板