• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

整型与字符型之间转化

整数转化为字符串                       


1、可以使用itoa函数(注意,这个函数时在stdlib库中)

char *itoa(int value, char *string, int radix);
      value: 被转换的整数
      string: 转换后储存的字符数组
      radix: 转换进制数,如2,8,10,16 进制等

 

#include <stdio.h>
#include <stdlib>

int main()
{
    int num = 12345;
    char str[7];

    itoa(num,str,10);

    printf("输出:%s",str);
    return 0;
}


2、自定义函数

 

        采用加‘0’,再逆序的方法,整数加‘0’就可以隐性的转化为char型(加减‘0’可以使得在int和char之间转化)

 

char* IntToStr(int num,char* str)
{
    if(NULL == str)
        return NULL;

    int i = 0,j = 0;//注意初始化
    char temp[100];
    while(num){
        temp[i] = num%10 + '0';//一个整数转化成字符型
        num = num /10;
        i++;
    }
    temp[i] = '\0';//字符串结束标志

    i = i - 1;//i返回到temp最后一个有意义的数字
    while(i >= 0){
        str[j] = temp[i];
        j++;
        i--;
        //str[j++] = temp[i--];
    }
    return str;
}


字符串转化为整数                      

 


1、使用非标准C函数atoi

        int atoi(const char *nptr);参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零

 

#include <sddio.h>
#include <stdlib.h>

int main()
{
    char str[] = "12345";
    int num;
    
    num = atoi(str);
    printf("num = %d"num);
    return 0;
}


2、自定义函数

 

 

int StrToInt(char*str)
{
    if(NULL == str)
        return -1;
	
    int res = 0;
    bool flag = false;
    if(str[0] == '-' || str[0] == '+'){
	flag = (*str++ != '+');
    }
    while(*str){
	res = res*10 + (*str++ -'0');
    }
    return flag ? -res : res;
}


 

 

posted @ 2013-09-12 22:20  Class Xman  阅读(726)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3