麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

解析基于C語言的指令

2020-02-24 14:34:39
字體:
供稿:網(wǎng)友

為了方便各位小伙伴們更好的學(xué)習(xí)C語言,今天武林技術(shù)頻道的小編專門為大家整理了一些資料,供大家交流學(xué)習(xí),下面就跟隨武林技術(shù)頻道的編輯一起來看看解析基于C語言的指令吧。

這雖然只是指令解析的一部分,但這是最核心部分。完整指令為:AT+REG[admin][2][00:0C:29:AA:0B:A7]。
/****************************************************************
?**文件:GetParameters.c
?**簡(jiǎn)要描述:指令解析
?**注:1.這種情況下“AT+ABC[ha12ha[1122]”--即中間少了一個(gè)], 則解析的結(jié)果為ha12ha[1122。
??????? 2.默認(rèn)參數(shù)的大小不超過20字節(jié)
??????? 3.最多解析三個(gè)參數(shù)。
??????? 4.指令結(jié)尾必須為空即'/0'或'/n'。
?***************************************************************/
?

復(fù)制代碼 代碼如下:

#include
#include
//保存參數(shù)的結(jié)構(gòu)體
typedef struct parameters
{
?char str1[20];? //第一個(gè)參數(shù)
?char str2[20];? //第二個(gè)參數(shù)
?char str3[20];? //第三個(gè)參數(shù)
}parameters_t;

?
/***** 獲取參數(shù) **********************************************/
//返回值為獲取參數(shù)的個(gè)數(shù),-1表示指令錯(cuò)誤
int Getparams(char* data, parameters_t* pparam)

{
?int len = 0;
?memset(pparam, 0, sizeof(parameters_t));

?//第一個(gè)參數(shù)
?{
? //如果為空或換行,則說明沒有參數(shù)
? if( 0 == *data || '/n' == *data)
? {
?? _ERROR("no parameter!");
?? return 0;
? }
? //如果為'['字符,則說明后面還有參數(shù)
? if( strncmp(data, "[", 1) )
? {
?? _ERROR("first parameter err:? can't find '['");
?? return -1;
? }
? data += 1;
? //如果'['后有']'結(jié)束字符,則說明參數(shù)有效
? if( !strstr(data, "]") )
? {
?? _ERROR("first parameter err:? can't find ']'");
?? return -1;
? }
? //得到第一個(gè)參數(shù)的長(zhǎng)度
? len = strstr(data, "]") - data;
? if(20 <= len)
? {
?? _ERROR("param one is too long!");
?? return -1;
? }
? //得到第一個(gè)參數(shù)
? strncpy(pparam->str1, data, len);
? //printf("str1 : %s/n", pparam->str1);
?}

?//第二個(gè)參數(shù)
?{
? data += (len + 1);
? //如果為空,則說明只有一個(gè)參數(shù)
? if( 0 == *data || '/n' == *data)
? {
?? //printf("only one parameter!/n");
?? return 1;
? }
? //如果為'['字符,則說明后面還有參數(shù)
? if( strncmp(data, "[", 1) )
? {
?? _ERROR("second parameter err:? can't find '['");
?? return -1;
? }
? data += 1;
? //如果'['后有']'結(jié)束字符,則說明參數(shù)有效
? if( !strstr(data, "]") )
? {
?? _ERROR("second parameter err:? can't find ']'");
?? return -1;
? }
? len = strstr(data, "]") - data;
? if(20 <= len)
? {
?? _ERROR("param two is too long!");
?? return -1;
? }?
? //得到第二個(gè)參數(shù)
? strncpy(pparam->str2, data, len);
? //printf("str2 : %s/n", pparam->str2);
?}

?//第三個(gè)參數(shù)
?{
? data += (len + 1);
? if( 0 == *data || '/n' == *data)
? {
?? //printf("only two parameter!/n");
?? return 2;
? }
? if( strncmp(data, "[", 1) )
? {
?? _ERROR("third parameter err:? can't find '['");
?? return -1;
? }
? data += 1;
? if( !strstr(data, "]") )
? {
?? _ERROR("third parameter err:? can't find ']'");
?? return -1;
? }
? len = strstr(data, "]") - data;
? if(20 <= len)
? {
?? _ERROR("param three is too long!");
?? return -1;
? }?
? strncpy(pparam->str3, data, len);
? //printf("str3 : %s/n", pparam->str3);
?}

?data += (len + 1);
?if( 0 != *data && '/n' != *data)
?{
? _ERROR("too much parameter!");
? return -1;
?}?

?return 3;
}
?


這就是指令(字符串)解析,目的是獲取參數(shù).。更多精彩內(nèi)容,盡在https://js.Vevb.com。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: www.91sp| 精品一区二区三区免费毛片 | 国产精品午夜未成人免费观看 | 天天鲁在线视频免费观看 | 黄色特级毛片 | 国产精品www | 亚洲精品在线观看网站 | 黄色国产在线观看 | 91av爱爱 | 性爱在线免费视频 | av免费在线观看av | 成人在线精品视频 | 日韩.www| 毛片免费看网站 | 久久99久久98精品免观看软件 | 免费黄色小视频网站 | 精品久久久久久久久久中文字幕 | 日韩欧美高清片 | 日日草夜夜草 | 久久久久久久久久久高潮一区二区 | 在线a毛片 | 国产精品高潮视频 | 九九热视频这里只有精品 | 亚洲一区二区观看播放 | a免费视频 | 亚洲成人福利在线 | 27xxoo无遮挡动态视频 | 久久久久久久高清 | 久久久久国产成人精品亚洲午夜 | 色污视频在线观看 | caoporn国产一区二区 | 一级黄色影片在线观看 | av色先锋 | 成人不卡一区二区 | 久久精品一区二区三 | 国产资源在线视频 | 久久国产亚洲精品 | 竹内纱里奈和大战黑人 | 精品国产一区二区三区天美传媒 | 免费久久久久 | 中文字幕在线免费 |