C语言sscanf提取特定规律字符串里面的内容
一、测试代码,提取被特定字符分隔的字符串中的内容。
#include<stdio.h>
void main(void)
{
char *toybuf="BUSNUM=123 DEVNUM=456 PRODUCT=789/321/";
char *usb_in="Bus 001 Device 504: ID 05e3:0608";
int busnum = 0, devnum = 0, pid = 0, vid = 0;
printf("sscanf function!!!!!\r\ntoybuf=%s\r\n",toybuf);
sscanf(toybuf, "BUSNUM=%u DEVNUM=%u PRODUCT=%u/%u/", &busnum,&devnum,&pid, &vid);
printf("busnum=%d devnum=%d pid=%d vid=%d\r\n",busnum,devnum,pid,vid);
printf("sscanf function!!!!!\r\nusb_in=%s\r\n",usb_in);
sscanf(usb_in, "Bus %u Device %u: ID %x:%x", &busnum,&devnum,&pid, &vid);
printf( "busnum=%u,devnum=%u,pid=0x%04x,vid=0x%04x\r\n", busnum,devnum,pid, vid);
}
二、运行结果。
xxx@ubuntu: gcc -o return return.c
xxx@ubuntu:$ ./return
sscanf function!!!!!
toybuf=BUSNUM=123 DEVNUM=456 PRODUCT=789/321/
busnum=123 devnum=456 pid=789 vid=321
sscanf function!!!!!
usb_in=Bus 001 Device 504: ID 05e3:0608
busnum=1,devnum=504,pid=0x05e3,vid=0x0608