+ -
当前位置:首页 → 问答吧 → char[]中读取数值的问题

char[]中读取数值的问题

时间:2010-08-08

来源:互联网

用字符串传递数值,BT的做法,
实在想不起来了,大家看看怎么算出来,有没有现成的函数可用?


char buf[3]={0};

buf[0]=202;
buf[1]=90;
buf[2]=222;
process(buf);
....

void process(char *p)

{
  在process函数里,再得到这3个十进制数.
}


谢谢

作者: mezilla   发布时间: 2010-08-08

XX=p[0];
XX=p[1];
XX=p[2];

是这个意思?

作者: liwangli1983   发布时间: 2010-08-08

帖子意义不明,到底要什么功能……

作者: daybreakcx   发布时间: 2010-08-08



QUOTE:
帖子意义不明,到底要什么功能……
daybreakcx 发表于 2010-08-08 19:24




   

难道我说的真不清楚?!
好吧我在描述一遍,

模型就是这样的

void process(char *p);

main()
{
   char buf[3]={0};
     buf[0]=202;      //主调函数里赋值
     buf[1]=90;
     buf[2]=222;
   process(buf);
}


void process(char *p)
{
     //在process函数里,要对主调函数赋值的那些数进行处理,如何取得这些数(本例中就是这三个数:202,90,222)
}
PS:
维护别人的代码就是无趣,至今不明白为什么用char来传递数值?

作者: mezilla   发布时间: 2010-08-08



QUOTE:
难道我说的真不清楚?!
好吧我在描述一遍,

模型就是这样的

void process(c ...
mezilla 发表于 2010-08-08 20:34


char还是int什么的无所谓(当数值小于256的时候),存的二进制序列没有什么区别.照原样提出来好了.当然,像222这样的大于char所能表示的最大数值,会被解释成负数.要在函数里再取回成正数,加个强制类型转换就是了
XX = (unsigned char)p[0];

作者: liwangli1983   发布时间: 2010-08-08

直接取出就行,楼上说的很详细

作者: daybreakcx   发布时间: 2010-08-08