您的位置:首页 > 编程语言

整型数据和字符串数据相互转化代码

2017-04-10 10:21 393 查看
//将整型转化为字符串
void itoa(int n, char *ch, int *len) {
    if(n < 10 && n >= 0) {
        ch[(*len)++] = (char)(n + '0');
    } else {
        itoa(n / 10, ch, len);
        ch[(*len)++] = '0' + n%10;
    }
}

其中的参数解释为:n为要转化的整型数据,ch为转化后的字符串首地址,len为一个等于零的int型数据。
//将字符串转化为整型数据返回
int char_to_int(char *name) {
    int i = 0, a = 0, len, value, j;
    len = strlen(name);
    while(name[i] != 0) {
        value = name[i] - '0';
        for(j = 1; j < len - i; j++) {
            value *= 10;
        }
        a += value;
        i++;
    }
    return a;
}
其中的参数解释为:name为要转化的字符串的首地址,该函数返回转化好的int型数据。
当然char_to_int()函数在系统里面有定义,可以直接使用,只要加上头文件就可以了。

也可以借助sscaf()和sprintf()进行转化:
以前还没有见过sscanf()函数,现在明白了,我小结一下:

若想用read()读取文件中的整型数据时可以借助sscanf()进行操作,假如我有一个sun文件,里面是87192,可以执行下面的程序进行测试:

#include

#include

#include

#include

int main(void)

{

       int a, fd;

       char ch[20], ch1[20];

       fd = open("sun", O_RDONLY);

       read(fd, ch, 20);

       sscanf(ch, "%d", &a);

       sprintf(ch1, "%d", a);

       printf("(int a) = %d,(char ch1[]) = %s\n", a, ch1);

       close(fd);

       return 0;

}

结果是:

(int a) = 87192,(char ch1[]) = 87192;

说明:上面用到了sscanf()和sprintf()函数。


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

阅读(3960) | 评论(0) | 转发(0) |

0
上一篇:使用优盘装系统

下一篇:有趣的随机数

相关热门文章
test123

编写安全代码——小心有符号数...

彻底搞定C语言指针详解-完整版...

使用openssl api进行加密解密...

一段自己打印自己的c程序...

linux dhcp peizhi roc

关于Unix文件的软链接

求教这个命令什么意思,我是新...

sed -e "/grep/d" 是什么意思...

谁能够帮我解决LINUX 2.6 10...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: