亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rprintf.c

?? sprintf函數的簡單功能實現。函數實現的功能不如庫函數
?? C
字號:
#include "stdarg.h"
#include "string.h"

static unsigned char Temp[128]; 

unsigned int str_len( char * str);
unsigned char Isdigit(char c);
int atoi_beta(char *str);


//-------------------------------------------------------------
//to caculate the  length of a string.
//
//------------------------------------------------------------
unsigned int str_len( char * str)
{
  int i=0;
  unsigned int count=0;
  
  while(str[i]!=0)
  {
    i++;
    count++; 
  }
  return count;
}

//--------------------------------------------------------------
// to decide whether a char is in range '0' ~ '9'
//
//--------------------------------------------------------------
unsigned char Isdigit(char c)
{
   if((c >= 0x30) && (c <= 0x39))   return 1;
   else   return 0;
}

//--------------------------------------------------------------
//transform a string  into  an   interger  formed 
//for example   "123456789" ----->   123456789(dec)
//--------------------------------------------------------------
int atoi_beta(char *str)
{
   int num = 0; 
 
   while(Isdigit(*str))
   {
      num *= 10;
      num +=  *str++  - 0x30 ;
   }
   return num;
}
  
//--------------------------------------------------------------
//Usage:     sprintf1(array,"%?%?",v1,v2,...);
//function:  to transform a  various value into a certain format,and store it in a spcified container.
//supported  : 
// %d - decimal
// %u - unsigned decimal
// %o - octal
// %x - hex
// %c - character
// %s - strings
//--------------------------------------------------------------
char * sprintf1(char *where,const char *sfmt, ...)
{
   register unsigned char *f, *bp, *str;
   register long l;
   register unsigned long u;
   register int i;
   register int fmt;
   register unsigned char pad = ' ';
   int     flush_left = 0, f_width = 0, prec = 32766, hash = 0, do_long = 0;
   int     sign = 0;

    va_list ap;
    va_start(ap, sfmt);

    str = (unsigned char*)where;
    f = (unsigned char *) sfmt;

    for (; *f; f++)
    {
       if (*f != '%')     *str++ = *f;                                // if not a format character,then just output the char                                         	 
  
       else 
       {
          f++;                                                        // if we have a "%" then skip it
          if (*f == '-')
          {
             flush_left = 1;                                          // minus: flush left
             f++;
          }
          if (*f == '0' || *f == '.')
          {                                   
             pad = '0';                                               // padding with 0 rather than blank
             f++;
          }
          if (*f == '*')
          {                                                           // field width
             f_width = va_arg(ap, int);
             f++;
          }
          else if (Isdigit(*f))
               {
                  f_width = atoi_beta((char *) f);
                  while (Isdigit(*f))
                  f++;                                                // skip the digits
               }
               if (*f == '.')
               {                                                      // precision
                  f++;
                  if (*f == '*')
                  {
                     prec = va_arg(ap, int);
                     f++;
                  }
  
                  else if (Isdigit(*f))
                  {
                     prec = atoi_beta((char *) f);
                     while (Isdigit(*f))   f++;                       // skip the digits
                
                  }
               }
               if (*f == '#')
               {                                                      // alternate format
                  hash = 1;
                  f++;
               }
               if (*f == 'l')
               {                                                      // long format
                  do_long = 1;
                  f++;
               }

            fmt = *f;
            bp = Temp;
 
            switch (fmt)                                              // do the formatting
            {
             case 'd':                                                // 'd' signed decimal
                        if (do_long)   l = va_arg(ap, long);
                        else   l = (long) (va_arg(ap, int));
 
                        if (l < 0)
                        {
                           sign = 1;
                           l = -l;
                        }
                        do
                        {
                           *bp++ = l % 10 + '0';
                        }while ((l /= 10) > 0);
                    
                        if (sign)   *bp++ = '-';
                        f_width = f_width - (bp - Temp);
 
                        if (!flush_left)
                           while (f_width-- > 0)   *str++ = (pad);
                        for (bp--; bp >= Temp; bp--)   *str++ = (*bp);
                        if (flush_left)
                            while (f_width-- > 0)   *str++ = (' ');
                        break;
               case 'o':                                              // 'o' octal number
               case 'x':                                              // 'x' hex number
               case 'u':                                              // 'u' unsigned decimal
                        if (do_long)   u = va_arg(ap, unsigned long);
                        else   u = (unsigned long) (va_arg(ap, unsigned));
 
                        if (fmt == 'u')
                        {                                             // unsigned decimal
                           do
                           {
                              *bp++ = u % 10 + '0';
                           }while ((u /= 10) > 0);
                        }
                        else if (fmt == 'o')
                        {                                             // octal
                           do
                           {
                              *bp++ = u % 8 + '0';
                           }while ((u /= 8) > 0);
                           if (hash)   *bp++ = '0';
                        }
                        else if (fmt == 'x')
                        {                                              // hex
                           do
                           {
                              i = u % 16;
                              if (i < 10)   *bp++ = i + '0';
                              else   *bp++ = i - 10 + 'a';
                           } while ((u /= 16) > 0);
                           if (hash)
                           {
                              *bp++ = 'x';
                              *bp++ = '0';
                           }
                        }
                        i = f_width - (bp - Temp);
                        if (!flush_left)
                           while (i-- > 0)   *str++ = (pad);
                        for (bp--; bp >= Temp; bp--)   *str++ = ((int) (*bp));
                        if (flush_left)
                           while (i-- > 0)   *str++ = (' ');
                        break;
               case 'c':                                              // 'c' character
                        i = va_arg(ap, int);
                        *str++ = ((int) (i));
                        break;
               case 's':                                              // 's' string
                        bp = va_arg(ap, unsigned char *);
                        if (!bp)   bp = (unsigned char *) "(nil)";
           
                        f_width = f_width - strlen((char *)bp);
                        if (!flush_left)
                           while (f_width-- > 0)   *str++ = (pad);
                        for (i = 0; *bp && i < prec; i++)
                        {
                           *str++ = (*bp);
                           bp++;
                        }
                        if (flush_left)
                           while (f_width-- > 0)   *str++ = (' ');
                        break;
               case '%':                                              // '%' character
                        *str++ = ('%');
                        break;
            }
            flush_left = 0, f_width = 0, prec =32766, hash = 0, do_long = 0;
            sign = 0;
            pad = ' ';
        }   
    }   

      va_end(ap);
                                                                      // terminate string with null
      *str++ = '\0';

      return where;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区精品视频在线| 精品一区二区三区免费视频| 成人免费高清视频| 久久尤物电影视频在线观看| 亚洲国产综合人成综合网站| 欧美调教femdomvk| 亚洲国产精品一区二区久久| 欧美日韩视频在线第一区| 亚洲欧美成人一区二区三区| 91天堂素人约啪| 亚洲一区视频在线| 555www色欧美视频| 九九**精品视频免费播放| 精品久久久久一区| 国产夫妻精品视频| 亚洲免费在线电影| 欧美精品xxxxbbbb| 国产尤物一区二区在线| 国产视频在线观看一区二区三区| 成人午夜激情影院| 亚洲欧美aⅴ...| 欧美哺乳videos| 91国产免费看| 国内欧美视频一区二区| 国产精品青草综合久久久久99| 欧美亚洲一区三区| 国产成人免费在线视频| 亚洲高清免费视频| 中文字幕一区二区三区乱码在线 | 国产亚洲视频系列| 欧美性色综合网| 成人av网址在线| 免费观看日韩电影| 一区二区久久久| 国产精品视频第一区| 日韩一区二区在线看| 在线日韩国产精品| 成人免费黄色在线| 国产风韵犹存在线视精品| 日韩精品一二三区| 丝袜亚洲另类欧美综合| 成人免费一区二区三区视频| 久久精品夜夜夜夜久久| 日韩女优制服丝袜电影| 欧美日韩另类一区| 色婷婷av一区二区三区之一色屋| 丁香六月综合激情| 国产jizzjizz一区二区| 国产一区二区三区高清播放| 精品在线一区二区| 国产一区二区三区免费看| 男女激情视频一区| 狠狠色丁香九九婷婷综合五月| 蜜臀av亚洲一区中文字幕| 日韩制服丝袜先锋影音| 日本不卡免费在线视频| 秋霞电影一区二区| 开心九九激情九九欧美日韩精美视频电影 | 亚洲一区二区不卡免费| 视频在线观看国产精品| 午夜精品视频在线观看| 首页综合国产亚洲丝袜| 久久国产生活片100| 国产精品影视天天线| av不卡在线观看| 在线观看日韩高清av| 欧美精品亚洲一区二区在线播放| 日韩欧美电影一区| 久久综合九色综合97_久久久| 国产日韩欧美综合在线| 亚洲欧美另类在线| 久久成人免费网| 99热99精品| 欧美精品一区二区三区四区| 久久精品一区二区三区不卡牛牛 | 五月婷婷另类国产| 另类小说色综合网站| av电影在线观看不卡 | 国产精品白丝av| 在线视频国内自拍亚洲视频| 日韩免费高清视频| 亚洲综合网站在线观看| 国产成人午夜精品影院观看视频 | 26uuu亚洲| 洋洋成人永久网站入口| 国产精品一区二区免费不卡 | 国产伦精品一区二区三区视频青涩 | 日韩欧美一级片| 亚洲欧美日韩一区二区| 国产成人aaa| 日韩午夜电影av| 亚洲成va人在线观看| 99久久国产免费看| 国产精品久久久久久久久晋中| 日韩成人午夜精品| 欧美日韩成人综合在线一区二区| 国产精品不卡在线| 97国产精品videossex| 国产精品视频看| 99久久久精品| 一区二区三区四区中文字幕| 97国产一区二区| 一区二区成人在线| 欧美日韩国产综合一区二区三区 | 国产亚洲精品超碰| 国产成人免费av在线| www欧美成人18+| 国产麻豆成人精品| 国产精品久久久久影院| www.色综合.com| 亚洲精品成人悠悠色影视| 在线观看91精品国产入口| 亚洲一区成人在线| 欧美一区二区三区在| 黄网站免费久久| 亚洲视频你懂的| 日韩欧美一区二区不卡| 成人黄色a**站在线观看| 亚洲欧美另类小说| 日韩一区二区免费在线电影| 国产成人av影院| 亚洲大片精品永久免费| 亚洲精品一区在线观看| 日本电影亚洲天堂一区| 黄色日韩三级电影| 亚洲一区二区三区小说| 国产女同性恋一区二区| 欧美精品视频www在线观看| 欧美美女网站色| 久久国产尿小便嘘嘘尿| 日韩精品在线网站| 国产高清亚洲一区| 亚洲一卡二卡三卡四卡五卡| 色婷婷一区二区| 亚洲视频香蕉人妖| 欧美精品在线一区二区| 日本一区二区三区在线不卡| 国产寡妇亲子伦一区二区| 亚洲第一成年网| 一区二区三区在线观看动漫| 中文字幕第一页久久| 欧美电影免费提供在线观看| 欧美色网一区二区| 97国产精品videossex| 成人黄色片在线观看| 国产高清不卡一区| 国产精品亚洲成人| 国产在线精品视频| 国产在线播放一区| 午夜国产精品一区| 精品国产一区二区精华| 日韩精品一区在线观看| 欧美一级国产精品| 91精品国产综合久久久久久久久久 | 亚洲六月丁香色婷婷综合久久| 久久精品亚洲精品国产欧美| 久久日韩精品一区二区五区| 日韩女优av电影| 久久久久国产免费免费 | 欧美视频中文一区二区三区在线观看| 91麻豆精东视频| 欧美图区在线视频| 日韩三区在线观看| 久久久久久久免费视频了| 国产精品不卡在线| 亚洲成人动漫在线观看| 国产精品一区二区不卡| 色综合一个色综合亚洲| 日韩一区二区三区四区五区六区| 久久久午夜精品| 一区二区三区精品| 精品一区二区免费视频| 色网综合在线观看| 日韩欧美久久一区| 亚洲一区二区精品视频| 国产福利一区二区| 欧美高清一级片在线| 久久久不卡网国产精品一区| 天天综合天天综合色| 成人av在线电影| 精品粉嫩超白一线天av| 亚洲电影一区二区三区| 国产精品一色哟哟哟| 69堂精品视频| 一区二区三区欧美在线观看| 国产乱淫av一区二区三区| 欧美一二三四区在线| 自拍视频在线观看一区二区| 国产一区二区成人久久免费影院 | 欧美亚洲高清一区二区三区不卡| 国产精品午夜电影| 国产成人av电影在线观看| 欧美大片一区二区三区| 蜜桃av一区二区在线观看 | 国产成人亚洲精品青草天美| 精品久久人人做人人爰| 国产成人一级电影| 日韩一区二区免费高清| 日本视频在线一区| 久久伊99综合婷婷久久伊|