C语言根据协议分割获取字符串单元的实现代码

  

<强>协议做如下规定:

  

规定数据协议:

  

序列号,,长度,状态字,数据长度,数据1,数据2,数据3

  

以空格作为数据单元只,,,,,,,,,,,,

  

<强> ep:,,

        34567 26358 32698 00001 00007 1 - 3   (1)(2)(3)(4)(5)(6)(7)      

<>强如ep所示:

        (1)00001年就是数字1,即代表序列号为1   (2)00007年就是数字7,即代表长度为7   (3)1代表状态字   (4)3代表数字长度   (5)34567代表数据1   (6)26358代表数据2   (7)32698代表数据3      

这样就找到规律了,假设数据都为整型或者负整型,我们就可以来实现以下代码:

        # include & lt; stdio.h>   # include & lt; stdlib.h>   # include & lt; string.h>//根据空格拆分字符串   int分区(char * src, char * par, int pos)   {   int i, j。   我=pos;//取得一个非空字符   而(src[我]==')   + +我;   如果(src[我]!=' \ 0 ')   {   j=0;   而((src[我]!=' \ 0 '),,(src[我]!=' '))   {//判断条件是否满足   如果(src[我]比;“9”)| | (src[我]& lt;“0”),和(src[我]!='——'))   返回1;   票面价值[j]=src(我);   + +我;   + + j;   }   票面价值[j]=' \ 0 ';   返回我;   }   其他的   返回1;   }   int主要(空白)   {   int serial_number;   int长度;   int状态;   int data_length;   int data1、data2 data3;   int位置=0;   int para_flag=1;   int parameter_item=0;   char partition_string [20]={0};   char *数据=" https://www.yisu.com/zixun/00001 00007 3 34567 26358 32698”;   而(para_flag)   {   如果(para_flag==0)   打破;   如果((位置=分区(数据、partition_string位置)!=1)   {   + + parameter_item;   开关(parameter_item)   {   案例1:   serial_number=atoi (partition_string);   打破;   案例2:   长度=atoi (partition_string);   打破;   案例3:   状态=atoi (partition_string);   打破;   案例4:   data_length=atoi (partition_string);   打破;   例5:   data1=atoi (partition_string);   打破;   例6:   data2=atoi (partition_string);   打破;   例7:   data3=atoi (partition_string);   para_flag=0;   打破;   }   }   }   printf("序号:% d \ n”, serial_number);   printf("长度:% d \ n”,长度);   printf("状态字:% d \ n”,状态);   printf("数据长度:% d \ n”, data_length);   printf("数据1:% d \ n”, data1);   printf("数据2:% d \ n”, data2);   printf("数据3:% d \ n”, data3);   返回0;   }      

<>强运行结果:

  

 C语言根据协议分割获取字符串单元的实现代码

  

<强>总结

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

C语言根据协议分割获取字符串单元的实现代码