字符串转换为整型数据输出例子

初涉android, 有很多从配置文件或者系统文件里读取数据,但都是属于字符串类型,实际使用的时候需要转化为整型数据输出的,下面是我工作中的一个从文件里读取包含版本信息、和编译日期转化为数据输出的例子

void GetSoftwareVersion(unsigned char *data) 
{
char prop_value[PROPERTY_VALUE_MAX];
char wday[][4] = {"sun","mon","tue","wen","thu","fri","sat"};
char tmp[4];
        char *token = NULL;
        const char *strDelimit = ".";
int i = 0;
memset(prop_value, '\0', PROPERTY_VALUE_MAX);
property_get("ro.build.version",prop_value,"VERSION_ERROR"); // 读取ro.build.version 代表的版本信息,字符串类型
LOGD("skyver = %s",prop_value);
if (strcmp(prop_value, "\0") != 0) 
{
    tmp[i] = 0;
token = strtok(prop_value, strDelimit); // 字符串的数据之间用点.分割,这里把数据取出来
while (token != NULL) 
{
tmp[i] = strtoul(token, 0, 16)|tmp[i]<<4; //转化为16进制数据保存
token = strtok(NULL, strDelimit);
}
i++;
}
memset(prop_value, '\0', PROPERTY_VALUE_MAX);
property_get("ro.build.date.utc",prop_value,"VERSION_ERROR"); //读取UTC 时间
{
time_t timep = atoi(prop_value); // 把字符串形式的时间转化为int,并赋给时间变量
struct tm *p; //定义
//if(strcmp(prop_value, "VERSION_ERROR"))
p = localtime(&timep); //转化为时间结构,其结构在后面解析
LOGD("%d %02d %02d",1900+p->tm_year,1+p->tm_mon,p->tm_mday);
LOGD("%s %02d: %02d: %02d",wday[p->tm_wday],p->tm_hour,p->tm_min,p->tm_sec);
tmp[i++] = (((1+p->tm_mon)/10)<<4)+(1+p->tm_mon)%10;
tmp[i++] = ((p->tm_mday/10)<<4)+p->tm_mday%10;
tmp[i] = '\0';
}
memcpy(data, tmp,sizeof(tmp));
 }

struct tm

  {
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;
  };
  int tm_sec 代表目前秒数,正常范围为0-59,但允许至61秒
  int tm_min 代表目前分数,范围0-59
  int tm_hour 从午夜算起的时数,范围为0-23
  int tm_mday 目前月份的日数,范围01-31
  int tm_mon 代表目前月份,从一月算起,范围从0-11
  int tm_year 从1900 年算起至今的年数
  int tm_wday 一星期的日数,从星期一算起,范围为0-6
  int tm_yday 从今年1月1日算起至今的天数,范围为0-365
  int tm_isdst 日光节约时间的旗标
  此函数返回的时间日期未经时区转换,而是UTC时间。
  返回值 返回结构tm代表目前UTC 时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值