zoukankan      html  css  js  c++  java
  • 字符串截取算法

    获取某字符串中从某字符开始至某字符结束中间的字符串数:

     1 unsigned int get_specified_string_by_chara( char *str, char start, char over, char *substr )
     2 {
     3     char *p1, *p2;
     4     unsigned int len = 0;
     5 
     6     p1 = strchr( str, start );
     7     p2 = strchr( p1 + 1, over );
     8     *substr = 0;
     9 
    10     if ( p1 != NULL && p2 != NULL && p2 > p1 + 1 )
    11     {
    12         while ( ++p1 < p2 )
    13         {
    14             *substr++ = *p1;
    15             len++;
    16         }
    17         *substr = 0;
    18     }
    19     return len;
    20 }

    获取某字符串从出现第N个逗号开始的所有字符数:

     1 unsigned int get_specified_string_by_comma( unsigned char CNT_Comma,char *str,char *substr )
     2 {
     3     char *p=str;
     4     unsigned int len;
     5     
     6     *substr = 0;
     7     if( CNT_Comma )
     8     {
     9         while( isprint(*p) && CNT_Comma )
    10         {
    11             if( *p++ == ',' ) CNT_Comma--;
    12         }
    13         if( CNT_Comma ) return 0;
    14     }
    15     
    16     len=0;
    17     while( isprint(*p) && *p != ',' )
    18     {
    19         *substr++ = *p++;
    20         len++;
    21     }
    22     *substr = 0;
    23     return len;
    24 }

    举例说明:

     1 const char* string="+QLTS: "2019/01/13,03:40:48+32,0"";
     2 char *pstr, *pstr2;
     3 char *p1, *p2;
     4 u16 temp;
     5 
     6 void main(void)
     7 {
     8   //p1=“TS: "2019/01/13,03:40:48+32,0"”
     9   p1=strstr(string,"TS: ");           //比较字符串string是否存在固定字符串,并将p1指针指向该字符串出现第一个字符及后面所有字符
    10   if(p1!=NULL)
    11   {
    12     //temp=4,pstr="2019"
    13     temp=get_specified_string_by_chara(p1,'"','/',pstr);//获取从出现第一个字符开始,至第二个字符截止的字符串个数,并将该字符串存放在pstr中
    14     if(temp!=0)
    15     {
    16       //temp=2019
    17       temp = atoi(pstr);        //将字符转整形数据给temp
    18       if(temp==2019)
    19       {
    20         //temp=11,pstr="03:40:48+32"
    21         temp=get_specified_string_by_comma( 1, p1, pstr );//获取从第一个逗号开始,至第二个逗号截止的字符串个数,并该段字符串存放在pstr中
    22         if(temp > 15)
    23         {
    24           temp=0;
    25         }
    26       }
    27     }
    28   }
    29   for(;;)
    30   {
    31     
    32   }
    33 }
  • 相关阅读:
    我爱java系列之---【微服务间的认证—Feign拦截器】
    我爱java系列之---【设置权限的三种解决方案】
    581. Shortest Unsorted Continuous Subarray
    129. Sum Root to Leaf Numbers
    513. Find Bottom Left Tree Value
    515. Find Largest Value in Each Tree Row
    155. Min Stack max stack Maxpop O(1) 操作
    painting house
    Minimum Adjustment Cost
    k Sum
  • 原文地址:https://www.cnblogs.com/lumao1122-Milolu/p/14305162.html
Copyright © 2011-2022 走看看