国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C/C++ - 基于C語言指令的深入分析

基于C語言指令的深入分析

2020-12-08 15:27C語言中文網(wǎng) C/C++

本篇文章是對C語言的指令進行了詳細的分析與介紹,需要的朋友參考下

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

復制代碼 代碼如下:


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

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

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

 //第一個參數(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;
  }
  //得到第一個參數(shù)的長度
  len = strstr(data, "]") - data;
  if(20 <= len)
  {
   _ERROR("param one is too long!");
   return -1;
  }
  //得到第一個參數(shù)
  strncpy(pparam->str1, data, len);
  //printf("str1 : %s\n", pparam->str1);
 }

 //第二個參數(shù)
 {
  data += (len + 1);
  //如果為空,則說明只有一個參數(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;
  } 
  //得到第二個參數(shù)
  strncpy(pparam->str2, data, len);
  //printf("str2 : %s\n", pparam->str2);
 }

 //第三個參數(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ù).

延伸 · 閱讀

精彩推薦
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內(nèi)存中的數(shù)據(jù)都是暫時的,當程序結(jié)束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關(guān)于C語言中文件...

    針眼_6702022-01-24
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網(wǎng)7342020-12-03
  • C/C++C語言實現(xiàn)電腦關(guān)機程序

    C語言實現(xiàn)電腦關(guān)機程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電腦關(guān)機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C/C++經(jīng)典實例之模擬計算器示例代碼

    C/C++經(jīng)典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關(guān)于C/C++經(jīng)典實例之模擬計算器的相關(guān)資料,文中通過示...

    jia150610152021-06-07
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下...

    青山的青6062022-01-04
主站蜘蛛池模板: a天堂国产 | 欧美激情视频一区二区三区在线播放 | 亚洲成人一区二区三区在线观看 | 日韩在线观看中文字幕 | 成人影院一区二区 | 日韩免费在线视频 | 久久久久久久久久久网站 | 久久综合av | 免费观看欧美一级大片 | av中文在线 | 男人天堂亚洲 | 精品综合99久久久久久www | 日韩福利片 | 国产精品一区二区免费 | 欧美视频第一页 | 国产成人一区二区 | 亚洲男女视频在线观看 | 99在线视频观看 | 国产日产欧产美韩av | 国产伦理一区 | 一区免费看 | 久久中文精品 | 成人精品一区二区三区中文字幕 | 亚洲精品综合 | 久久99精品久久久久婷婷暖91 | av7777 | 日韩中文字幕在线观看 | 特黄网站| 日韩三级电影 | 国产美女精品视频免费观看 | 欧洲亚洲一区 | 国产精品免费看 | 日韩一区二区视频在线 | 久久中文字幕一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 国产精品美女av | 日韩一区二区免费视频 | 国产96在线视频 | 国产成人精品一区二 | 老熟妇午夜毛片一区二区三区 | 日韩性视频 |