怎么用C程序提取一个数组中指定的一段字符?

2019-03-24 10:58发布

亲亲亲亲亲亲亲.jpg
上图中红线划出来的是返回到我单片机RXBUF中的IP地址,我想就把ip提取出来,把前面的%DNSR不要,这个程序怎么写啊?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
kandy11
1楼-- · 2019-03-25 19:50
a是红 {MOD}标出来的那串字符指针,ip是你存储IP地址的指针,用于返回IP数据,数组要定义足够存储IP地址的最大长度LENGTH_IP_BUFFER=15,这样才能保证数据不越界。
不知道是不是你想要的。

void Get_ip(uchar *a,uchar *ip)
{
   int i;
   for(i=6;a[i]!='';i++)
  {
       if(i-6<LENGTH_IP_BUFFER)
       {
       if(a[i]=='.')
       {
           *ip='.';
       }
       else
       {
            *ip=a[i]-'0';
       }
       ip++;
       }
  }
}
armcu
2楼-- · 2019-03-26 00:46
 精彩回答 2  元偷偷看……
面纱如雾
3楼-- · 2019-03-26 03:29
kandy11 发表于 2014-8-24 17:14
a是红 {MOD}标出来的那串字符指针,ip是你存储IP地址的指针,用于返回IP数据,数组要定义足够存储IP地址的最大 ...

我调用函数是这样:Get_ip(RxBuf,IP);
里面两个数组定义是这样的:
#define LENGTH_IP_BUFFER 15
uchar IP[LENGTH_IP_BUFFER]={0};
#define RxBuf_N 25
uchar RxBuf[RxBuf_N]={0};
这样对不对?
运行起来从串口看好像没有获取到IP..........
面纱如雾
4楼-- · 2019-03-26 03:50
kandy11 发表于 2014-8-24 17:14
a是红 {MOD}标出来的那串字符指针,ip是你存储IP地址的指针,用于返回IP数据,数组要定义足够存储IP地址的最大 ...

#pragma vector = UART0RX_VECTOR
__interrupt void UART0_RXISR(void)
{     
  RxBuf[RxPoint++]=RXBUF0;  //取出回显   
}
我这个接收中断能不能接收到回显?
kandy11
5楼-- · 2019-03-26 04:06
 精彩回答 2  元偷偷看……
ivan1022
6楼-- · 2019-03-26 06:33
你返回一个临时指针,在函数结束的时候中间变量会被释放,你什么都获取不到。
如果你数据会改变,如上面几位所说,你可以寻找%DNSR:,或者找到“:”,去取后面的IP,不知道对你有没有帮助

一周热门 更多>

相关问题

    相关文章