首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这样做int与char转换,有危险吗?该如何处理

2012-04-28 
这样做int与char转换,有危险吗?那天写代码的时候突然想到可以这样做个人感觉挺方便,不知道和逐位求余转换

这样做int与char转换,有危险吗?
那天写代码的时候突然想到可以这样做
个人感觉挺方便,不知道和逐位求余转换的方法相比有没有什么弊端?

C/C++ code
#include <stdio.h>#include <stdlib.h>char *int2str(const int a, char *b);int main(){    int a = 123456789;    char *b;    b = (char *)malloc(sizeof(char) * 10);    b = int2str(a, b);    printf("%s\n", b);    free(b);    return 0;}char *int2str(const int a, char *b){    sprintf(b, "%d", a);    return b;}


[解决办法]
没问题.
[解决办法]
感觉可以,把数字转为字符,而且10个容量已经可以容纳int的4字节了,如果在64位机器上,要考虑int的尺寸了
[解决办法]
直接sprintf就行了哈。参考:
C/C++ code
int main(int argc, char** argv){    int number = 123456789;    int digits = ceil(log((double)number) / log((double)10) + 0.5);    // 算出number的位数    char* dest = (char*)malloc(sizeof(char) * (digits + 1));        // 再加1,以便放置字符串的结束符    memset(dest, 0, digits + 1);                                    // 全部设置为0    sprintf(dest, "%d", number);    printf("%s\n", dest);    return 0;}
[解决办法]
直接用位操作不是很好么?知道大小端的话直接强转大概是最快的,用字符串。。。。还不如取余呢

热点排行