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

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

?? fmtext.c

?? 很小很全很猛地basic編譯器
?? C
字號:
#include <stdarg.h>
#include <unistd.h>
#include "pdt.h"

#define FLAG_CHINESE 0xA0
#define IsChinese(c)  (c > FLAG_CHINESE)

/* 對字符串中的每個漢字串預留2個位置后進行拷貝(漢字縮短)
 * 函數參數:
 *         char *szData  處理串
 *         int  nSize    期望的長度
 */
RESULT CopyChnStr(char *szData, int nSize)
{
    BOOL bInChinese = FALSE;
    int  i = 0, j = 0;
    int nEnd = -2;   /* 表示最后一個漢字的開始位置 */

    while(TRUE)
    {
	if (szData[i] == 0 || j >= nSize)
	    break;

/* 20060821 
	if (IsChinese((unsigned char)szData[i]))
 */
        if (((unsigned char)szData[i] > 0x80) && ((unsigned char)szData[i] < 0xFF))
	{
	    if (!bInChinese)
		bInChinese = TRUE;
	    i += 2;
	    j += 2;
            nEnd = (i - 2);
	}
	else
	{
	    if (bInChinese)
	    {
		j += 2;
	        bInChinese = FALSE;
	    }
	    i ++;
	    j ++;
	}
    }

    if (j > nSize)
    {
        if ( (szData[i - (j - nSize) - 1] >= 0x81) && (szData[i - (j - nSize) - 1] <= 0xFE) && (nEnd == (i - (j - nSize) - 1)) )
            szData[i - (j - nSize) - 1] = ' ';
         szData[i - (j - nSize)] = 0;
    }
    else
    {
        if ( (szData[i-2] >= 0x81) && (szData[i-2] <= 0xFE)  && (nEnd == (i - 2)))
        {
            szData[i-2] = ' ';
            szData[i-1] = ' ';
        }
        szData[i] = 0;
    }

    return NORMAL;
}

/* 對字符串中的每個漢字串增加2位直到預定長度
 * 函數參數:
 *         char  *szDataSrc  源串
 *         char  *szDataDes  目地串
 *         int   nSize       期望的長度
 *         PINT  pnDataSrc   到達預定長度后源串指針
 */
RESULT FillChnStr(char *szDataSrc, char *szDataDes, int nSize, PINT pnDataSrc)
{
    BOOL bInChinese = FALSE;
    int  i = 0, j = 0, k;

    DETECT_NULL(szDataSrc);
    DETECT_NULL(szDataDes);

    while(TRUE)
    {
	if (szDataSrc[i] == 0 || j >= nSize)
	    break;

	if (IsChinese((unsigned char)szDataSrc[i]))
	{
	    if (!bInChinese)
		bInChinese = TRUE;
	    memcpy(szDataDes + i, szDataSrc + i, 2);
	    i += 2;
	    j += 2;
	}
	else
	{
	    if (bInChinese)
	    {
		j += 2;
		if (j >= nSize)
		    break;
		    
	        bInChinese = FALSE;
	    }
	    memcpy(szDataDes + i, szDataSrc + i, 1);
	    i ++;
	    j ++;
	}
    }

    /*
    for (k = i; k < nSize; k ++)
        szDataDes[k] = ' ';
    szDataDes[nSize] = 0;
    */

    (*pnDataSrc) = i;

    return NORMAL;
}

/* 取字符串中的漢字串,如:"漢字 漢 字"串中有3個漢字串 */
void GetChineseItem(char *szData, int *pnItem)
{
    BOOL bInChinese = FALSE;
    int  i = 0;

    (*pnItem) = 0;
    while(TRUE)
    {
	if (szData[i] == 0)
	    break;
	if (IsChinese((unsigned char)szData[i]))
	{
	    if (!bInChinese)
	    {
		bInChinese = TRUE;
		(*pnItem) ++;
	    }
	    i += 2;
	}
	else
	{
	    if (bInChinese)
	        bInChinese = FALSE;
	    i ++;
	}
    }
}

/*
 * 將數據轉換成EBCDIC碼后按格式放到緩沖區中
 * 參數說明:char  *str         緩沖區
 *         char  *fmt1, ... 參數串
 * 返回:    成功: 數據長度
 *           失敗: -1
 */

int tprintfEbcdic( char *str, char *fmt1, ...)
{
    char szAscii[2048 + 1], szEbcdic[2048 + 1];
    int  nEbcdicSize, nAsciiSize;

    va_list arglist;
    char c,c1,*pc;
    static char fmt[500],buf[4000];
    int idx1,idx2,len,len1,state,p1;

    strcpy(fmt,fmt1);
    idx1=idx2=state=0; /* init */
    va_start(arglist,fmt1);

    while( 1 ){

      c=fmt[idx1];

      if( c==0 )break;

      switch (state){
      case 0:
        if( c=='%' ) { p1=idx1;state=1; }
        break;
      case 1:
        if( c=='c' ){

            bufclr(szAscii);
            szAscii[0]=va_arg(arglist,short int);
            nAsciiSize = 1;

            bufclr(szEbcdic);
            ShiftAsciiToEbcdicExt((PUCHAR)szEbcdic, (PUCHAR)szAscii,  \
                             nAsciiSize + 1, nAsciiSize);

            buf[idx2] = szEbcdic[0];
            idx2++;
            state=0;
        }
        else if('0'<=c && c<='9'){
            len=c-'0';
            state=2;
        }
        else return(-1);
        break;

      case 2:/* '%'<num>^ */
        if( '0'<=c && c<='9' ) len=10*len+c-'0';
        else if(c=='.')    state=3;
        else if( c=='d' || c=='f' ){
            c1=fmt[idx1+1];
            fmt[idx1+1]=0;
            if( c=='d' )
            {
                bufclr(szAscii);
                nAsciiSize = sprintf(szAscii, fmt+p1, \
                va_arg(arglist,short int));

                bufclr(szEbcdic);
                ShiftAsciiToEbcdicExt((PUCHAR)szEbcdic, \
                (PUCHAR)szAscii, \
                                len + 1, len);

                sprintf(buf+idx2, "%s", szEbcdic);
            }
            else
            { /* c=='f' */
                bufclr(szAscii);
                nAsciiSize = sprintf(szAscii, fmt+p1, \
                va_arg(arglist, double));

                bufclr(szEbcdic);
                ShiftAsciiToEbcdicExt((PUCHAR)szEbcdic,(PUCHAR)szAscii, \
                                len + 1, len);

                sprintf(buf+idx2, "%s", szEbcdic);
            }

            fmt[idx1+1]=c1;
            idx2+=len;
            state=0;
        }
        else if( c=='l' ) state=5;
        else if( c=='s' ){
            bufclr(szAscii);

            /* sprintf(szAscii, "%s", va_arg(arglist,char*));  */

            mstrcpy(len, va_arg(arglist,char*), szAscii);

            bufclr(szEbcdic);
            ShiftAsciiToEbcdicExt((PUCHAR)szEbcdic, \
                                  (PUCHAR)szAscii, \
                                  len + 1, len);

            sprintf(buf+idx2, "%s", szEbcdic);

            idx2+=len;
            state=0;
        }
        else if(c=='h') state=2;
        else return(-1);
        break;

      case 3: /* '%'<num>'.'^ */
        if('0'<=c && c<='9') state=4;
        else return(-1);
        break;

      case 4: /* '%'<num>'.'<num>^ */
            if( '0'<=c && c<='9' ) state=4;
        else if( c=='f' ){
            c1=fmt[idx1+1];
            fmt[idx1+1]=0;

                bufclr(szAscii);
                nAsciiSize = sprintf(szAscii, fmt+p1, \
                va_arg(arglist, double));

            bufclr(szEbcdic);
            ShiftAsciiToEbcdicExt((PUCHAR)szEbcdic, \
                (PUCHAR)szAscii, \
                            len + 1, len);

            sprintf(buf+idx2, "%s", szEbcdic);

            fmt[idx1+1]=c1;
            idx2+=len;
            state=0;
        }
        else if( c=='l' ) state=6;
        else return(-1);
        break;

      case 5: /* '%'<num>'l'^  */
        if( c=='f' || c=='d' ){
            c1=fmt[idx1+1];
            fmt[idx1+1]=0;
            if( c=='f' )
            {
                    bufclr(szAscii);
                    nAsciiSize = sprintf(szAscii, fmt+p1, \
                va_arg(arglist, double));

                bufclr(szEbcdic);
                ShiftAsciiToEbcdicExt((PUCHAR)szEbcdic, \
                (PUCHAR)szAscii, \
                                len + 1, len);

                sprintf(buf+idx2, "%s", szEbcdic);
            }
            else /* c=='d' */
            {
                    bufclr(szAscii);
                    nAsciiSize = sprintf(szAscii, fmt+p1, \
                va_arg(arglist, long));

                bufclr(szEbcdic);
                ShiftAsciiToEbcdicExt((PUCHAR)szEbcdic, \
                (PUCHAR)szAscii, \
                                len + 1, len);

                sprintf(buf+idx2, "%s", szEbcdic);
            }

            fmt[idx1+1]=c1;
            idx2+=len;
            state=0;
        }
        else return(-1);
        break;

      case 6: /* '%'<num>'.'<num>'l'^ */
        if( c=='f' ){
            c1=fmt[idx1+1];
            fmt[idx1+1]='\0';

                bufclr(szAscii);
                nAsciiSize = sprintf(szAscii, fmt+p1, \
                va_arg(arglist, double));

            bufclr(szEbcdic);
            ShiftAsciiToEbcdicExt((PUCHAR)szEbcdic, \
                (PUCHAR)szAscii, \
                            len + 1, len);

            sprintf(buf+idx2, "%s", szEbcdic);

            fmt[idx1+1]=c1;
            idx2+=len;
            state=0;
        }
        else return(-1);
        break;
      }/*end switch*/

      idx1++;

    } /*end while*/

    buf[idx2]='\0';
    memcpy(str, buf, idx2);
    str[idx2] = '\0';

    va_end(arglist);
        return idx2;
}


/*
 * 將數據從EBCDIC碼轉換到ASCII后按格式輸出到變量中
 * 參數說明:char  *str         緩沖區
 *         UINT  nSize        數據長度
 *         char  *fmt1, ... 參數串
 */

short int tscanfEbcdic( char *szEbcdic, UINT nSize, char *fmt, ... )
{
    va_list arglist;
    char c,c1,fmt1[16];
    int idx1,idx2,len=0;
    int state;
    double x;

        char str[8192 + 1];

    ShiftEbcdicToAsciiExt((PUCHAR)str, (PUCHAR)szEbcdic, nSize + 1, nSize);

        idx1=idx2=state=0; /* init */

    va_start(arglist,fmt);

       while(1){

      c=fmt[idx1];
      if( !c ) break;

      switch (state){
      case 0:
        if( c=='%' ) state=1;
        break;

      case 1: /* '%'^ */
        if(c=='c'){
            *va_arg(arglist,char*)=str[idx2];
            idx2+=1;
            state=0;
        }
        else if('0'<=c && c<='9'){
            state=2;
            len=c-'0';
        }
        else return(-1);
        break;

      case 2: /* '%'<num>^ */
        if( '0'<=c && c<='9' ) len=10*len+c-'0';
        else if(c=='.')    state=4;
        else if(c=='d' || c=='f' || c=='s' ) {
            c1=str[idx2+len];
            str[idx2+len]=0;
            if( c=='d' ) *va_arg(arglist,short int*)=atoi(str+idx2);
            else if( c=='f' ) *va_arg(arglist,float*)=atof(str+idx2);
            else if( c=='s' ) nstrcpy(len,str+idx2,va_arg(arglist,char*));
            idx2+=len;
            str[idx2]=c1;
            state=0;
        }
        else if(c=='h') state=2;
        else if(c=='l') state=3;
        else return(-1);

        break;

        case 3: /* '%'<num>'l'^  */
        if( c=='d' || c=='f' ){
            c1=str[idx2+len];
            str[idx2+len]='\0';
            if( c=='d' ) *va_arg(arglist,long*)=atol(str+idx2);
            else if( c=='f' ) *va_arg(arglist,double*)=atof(str+idx2);
            idx2+=len;
            str[idx2]=c1;
            state=0;
        }
        else return(-1);
        break;

        case 4: /* '%'<num>'.'^ */
          if( '0'<=c && c<='9' ) state=5;
          else return(-1);
          break;

        case 5: /* '%'<num>'.'<num>^ */
          if( '0'<=c && c<='9' ) state=5;
          else if( c=='f' ){
            c1=str[idx2+len];
            str[idx2+len]='\0';
            *va_arg(arglist,float*)=(float)atof(str+idx2);
            idx2+=len;
            str[idx2]=c1;
            state=0;
          }
          else if( c=='l' ) state=6;
          else return(-1);
          break;

        case 6: /* '%'<num>'.'<num>'l'^ */
          if( c=='f' ){
            c1=str[idx2+len];
            str[idx2+len]='\0';
            *va_arg(arglist,double*)=atof(str+idx2);
            idx2+=len;
            str[idx2]=c1;
            state=0;
          }
          else return(-1);

          break;

      }/*end switch*/

      idx1++;

    } /*end while*/
    va_end(arglist);
        return(0);
}

/* 按格式轉換輸出字符串,如果有漢字,縮減漢字數以免溢出 */
short int tprintfChn( char *str, char *fmt1, ... )
{
	va_list arglist;
	char c,c1,*pc;
	static char fmt[500],buf[4000];
	int idx1,idx2,len,len1,state,p1;
	int nItem;

	strcpy(fmt,fmt1);
	idx1=idx2=state=0; /* init */
	va_start(arglist,fmt1);

	while( 1 ){

	  c=fmt[idx1];

	  if( c==0 )break;

	  switch (state){
	  case 0:
		if( c=='%' ) { p1=idx1;state=1; }
		break;
	  case 1:
		if( c=='c' ){
			buf[idx2]=va_arg(arglist,short int);
                        if (buf[idx2] == '\0') buf[idx2] = ' ';
			idx2++;
			state=0;
		}
		else if('0'<=c && c<='9'){
			len=c-'0';
			state=2;
		}
		else return(-1);
		break;

	  case 2:/* '%'<num>^ */
		if( '0'<=c && c<='9' ) len=10*len+c-'0';
		else if(c=='.')	state=3;
		else if( c=='d' || c=='f' ){
			c1=fmt[idx1+1];
			fmt[idx1+1]=0;
			if( c=='d' ) sprintf(buf+idx2,fmt+p1,va_arg(arglist,short int));
			else{ /* c=='f' */
				sprintf(buf+idx2,fmt+p1,va_arg(arglist,double));
			}
			fmt[idx1+1]=c1;
			idx2+=len;
			state=0;
		}
		else if( c=='l' ) state=5;
		else if( c=='s' ){
			pc=va_arg(arglist,char*);
			CopyChnStr(pc, len);
			len = strlen(pc);
			mstrcpy(len,pc,buf+idx2);
			idx2+=len;
			state=0;
		}
		else if(c=='h') state=2;
		else return(-1);
		break;

	  case 3: /* '%'<num>'.'^ */
		if('0'<=c && c<='9') state=4;
		else return(-1);
		break;

	  case 4: /* '%'<num>'.'<num>^ */
        	if( '0'<=c && c<='9' ) state=4;
		else if( c=='f' ){
			c1=fmt[idx1+1];
			fmt[idx1+1]=0;
			sprintf(buf+idx2,fmt+p1,va_arg(arglist,double));
			fmt[idx1+1]=c1;
			idx2+=len;
			state=0;
		}
		else if( c=='l' ) state=6;
		else return(-1);
		break;

	  case 5: /* '%'<num>'l'^  */
		if( c=='f' || c=='d' ){
			c1=fmt[idx1+1];
			fmt[idx1+1]=0;
			if( c=='f' ) sprintf(buf+idx2,fmt+p1,va_arg(arglist,double));
			else /* c=='d' */ sprintf(buf+idx2,fmt+p1,va_arg(arglist,long));
			fmt[idx1+1]=c1;
			idx2+=len;
			state=0;
		}
		else return(-1);
		break;

	  case 6: /* '%'<num>'.'<num>'l'^ */
		if( c=='f' ){
			c1=fmt[idx1+1];
			fmt[idx1+1]='\0';
			sprintf(buf+idx2,fmt+p1,va_arg(arglist,double));
			fmt[idx1+1]=c1;
			idx2+=len;
			state=0;
		}
		else return(-1);
		break;
	  }/*end switch*/

	  idx1++;

	} /*end while*/

	buf[idx2]='\0';
        strcpy(str,buf);

	va_end(arglist);
        return(0);
}

/* end of fmtext.c */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一道本成人在线| 国产在线看一区| 色狠狠桃花综合| 亚洲精品伦理在线| 欧美日韩激情一区二区三区| 亚洲国产一二三| 日韩你懂的在线观看| 久久99国产精品尤物| 久久久精品一品道一区| 成人aaaa免费全部观看| 亚洲日本va午夜在线影院| 在线观看欧美日本| 蜜臀av一级做a爰片久久| 久久精子c满五个校花| 成+人+亚洲+综合天堂| 亚洲综合免费观看高清完整版| 欧美日精品一区视频| 久久精品国产精品亚洲红杏| 欧美国产一区二区在线观看 | 欧美一卡二卡三卡四卡| 奇米影视一区二区三区| 久久精品人人爽人人爽| 一本久道久久综合中文字幕| 奇米影视一区二区三区| 国产精品九色蝌蚪自拍| 欧美久久一区二区| 高清成人在线观看| 五月综合激情日本mⅴ| 精品卡一卡二卡三卡四在线| gogo大胆日本视频一区| 日本成人中文字幕在线视频| 国产精品视频yy9299一区| 欧美日韩国产高清一区二区三区 | 一本一本久久a久久精品综合麻豆| 一区二区三区四区不卡在线| 日韩一区二区三区在线视频| a在线欧美一区| 久久99国产精品久久99| 亚洲精品日日夜夜| 国产亚洲制服色| 宅男在线国产精品| 色呦呦日韩精品| 国产白丝精品91爽爽久久| 偷偷要91色婷婷| 亚洲欧美福利一区二区| 精品久久国产字幕高潮| 欧美色视频一区| 99精品在线免费| 国模冰冰炮一区二区| 亚洲成人av福利| 亚洲精品国产视频| 国产欧美一区二区三区网站| 欧美一区二区三区在线电影| 欧美综合一区二区三区| 国产91精品精华液一区二区三区| 麻豆freexxxx性91精品| 视频一区二区欧美| 亚洲午夜三级在线| 亚洲人吸女人奶水| 国产精品萝li| 中文字幕免费不卡| 国产欧美日韩视频一区二区| 日韩精品一区在线观看| 在线不卡a资源高清| 在线亚洲一区观看| 91麻豆国产自产在线观看| 成人免费av在线| 成人永久免费视频| 国产精品香蕉一区二区三区| 激情六月婷婷久久| 精品一区二区三区在线观看 | 欧美国产乱子伦| 精品国产乱码久久久久久久久| 91精品国产色综合久久ai换脸| 欧美日韩中文字幕一区二区| 欧美丝袜丝交足nylons图片| 欧美日韩国产一级| 欧美一区二区三级| 日韩欧美国产综合一区| 精品日韩成人av| 国产三级精品在线| 国产精品久久三| 亚洲人成网站精品片在线观看| 亚洲精品菠萝久久久久久久| 樱花草国产18久久久久| 亚洲自拍偷拍图区| 丝袜美腿亚洲一区| 狂野欧美性猛交blacked| 激情丁香综合五月| 国产成人午夜视频| 99re亚洲国产精品| 欧美中文字幕亚洲一区二区va在线 | a美女胸又www黄视频久久| av在线播放一区二区三区| 色综合久久久网| 欧美日韩精品专区| 日韩一区二区三区视频在线观看| 久久综合九色综合久久久精品综合| 欧美精品一区二区久久婷婷| 国产精品私房写真福利视频| 亚洲日本免费电影| 美女国产一区二区三区| 成人免费av网站| 欧美精品在线观看播放| 久久久久久久久久久黄色| 中文字幕一区二区在线播放| 亚洲电影一区二区| 九九久久精品视频| av电影在线观看不卡| 欧美精品日韩精品| 国产亚洲精品aa午夜观看| 亚洲欧美激情在线| 精品一二三四区| 91福利国产精品| 国产香蕉久久精品综合网| 一区二区三区在线观看网站| 精品一区二区久久久| 日本道在线观看一区二区| 欧美成人精品福利| 日韩理论片在线| 精品一区二区三区视频在线观看 | 亚洲素人一区二区| 日本成人中文字幕| 91猫先生在线| 久久久国产精品午夜一区ai换脸| 亚洲高清一区二区三区| 国产乱码一区二区三区| 欧美老肥妇做.爰bbww视频| 国产精品传媒视频| 久久99国产乱子伦精品免费| 欧美影片第一页| 中文字幕在线观看不卡视频| 美国一区二区三区在线播放| 在线亚洲精品福利网址导航| 久久久久久久综合色一本| 亚洲电影中文字幕在线观看| 99久久久国产精品免费蜜臀| 亚洲精品在线观看网站| 一区二区三区精品视频在线| 国产乱人伦偷精品视频免下载| 欧美日韩高清在线播放| 国产精品久久久久aaaa樱花| 国产精品一级片在线观看| 91精品国产综合久久久久| 一区二区三区日韩在线观看| 不卡av在线免费观看| 久久无码av三级| 激情图片小说一区| 91精品国产全国免费观看| 亚洲一区二三区| 欧美在线一区二区| 亚洲欧美电影一区二区| caoporm超碰国产精品| 国产精品你懂的| 国产成人午夜99999| 2024国产精品| 国产中文字幕精品| 精品国产伦理网| 精品一区二区三区在线播放| 欧美tickling网站挠脚心| 日本怡春院一区二区| 777xxx欧美| 日韩av成人高清| 欧美一级一级性生活免费录像| 日日夜夜一区二区| 欧美久久一二三四区| 日韩精品每日更新| 日韩一区二区视频在线观看| 久久99日本精品| 精品国产网站在线观看| 狠狠色丁香婷综合久久| 精品sm捆绑视频| 国产aⅴ综合色| 亚洲欧洲另类国产综合| 99久精品国产| 亚洲bt欧美bt精品| 日韩丝袜美女视频| 精品一区二区三区免费| 久久精品免视看| 99re视频精品| 天天亚洲美女在线视频| 日韩一区二区三区观看| 国产在线一区二区| 国产精品美女久久久久aⅴ国产馆| 91麻豆免费观看| 日韩综合小视频| 久久亚区不卡日本| av不卡在线观看| 亚洲123区在线观看| 日韩欧美一级精品久久| 国产成人综合亚洲网站| 亚洲视频一区二区在线| 欧美日韩高清在线播放| 国内精品久久久久影院色| 国产精品麻豆99久久久久久| 欧美群妇大交群的观看方式| 国产尤物一区二区| 亚洲免费电影在线| 欧美电视剧免费观看| 91丨porny丨首页|