金牌会员
- 积分
- 1292
- 金钱
- 1292
- 注册时间
- 2014-12-20
- 在线时间
- 534 小时
|
发表于 2017-5-6 16:14:47
|
显示全部楼层
本帖最后由 BMN李 于 2017-5-6 20:56 编辑
假如USART2_RX_BUF的内容为””,”13670613084”,”129”,7,4
则
p1=(u8*)strstr((const char*)(USART2_RX_BUF),",");//查找””,”13670613084”,”129”,7,4里第一个逗号的位置,即””,”13670613084”,”129”,7,4这里的标红处
p2=(u8*)strstr((const char*)(p1+2),"\"");//p1+2指向””,”13670613084”,”129”,7,4这里的标红处,即号码的起始位置,从这里开始向后查找第一个引号的位置,即””,”13670613084”,”129”,7,4这里的标红处,目的是找号码的结束位置
p2[0]=0;//p2[0],其地址即p2+0,即p2,即””,”13670613084”,”129”,7,4这里的标红处,将其改写为数字0,即‘\0’,即字符串的结束符
所以
sprintf((char*)p,"本机号码:%s",p1+2);//p1+2指向””,”13670613084\0,”129”,7,4这里的标红处,从这里开始读入,遇见‘\0’结束,即p内容为13670613084
|
|