c語言解析varchar,c語言解析html

本文目錄一覽:

c語言如何解析xml並將所有內容存入數組

/* 前段時間恰好做過類似的東西,代碼可以給你參考下。

 *  Xml配置見最後

 */

typedef struct SrcFileFmt

{

    int   ColID;

    char  ColCode[64];      /* 欄位英文名稱 */

    char  ColName[128];     /* 欄位中文名稱*/

    char  ColType[20];      /* 欄位類型(包含長度) */

    char  ColComment[128];  /* 欄位描述 */

}SrcFileFmt;

int main(int argc, char **argv)

{

    SrcFileFmt SrcFileFmt[128];

    int iNum = -1;

    if ( 2  argc )

    {

        printf(“Usage: %s SrcXmlFile\n”, argv[0]);

        return -1;

    }

    iNum = parseSourceCfg(SrcCfgFile, SrcFileFmt);

    if (iNum == -1)

    {

        return -1;

    }

    return 0;

}

/* 調用此函數後,xml文件的內容會被存儲到結構體數組SrcFileFmt srcfilefmt[]中

 * 此函數依賴於libxml2-2.9.2.tar.xz

 */

int parseSourceCfg(char *FileName, SrcFileFmt srcfilefmt[])

{ /* 解析源文件xml,FileName 為源xml文件名 */

    xmlDocPtr doc;

    xmlNodePtr cur, root;

    char sFileName[64] = {‘\0’};

    int cnt = 0;

    if (FileName == NULL)

    {

        return -1;

    }

    sprintf(sFileName, “%s.xml”, FileName);

    doc = xmlParseFile(sFileName);

    if (doc == NULL)

    {

        return -1;

    }

    root = xmlDocGetRootElement(doc);

    if (root == NULL) {

        xmlFreeDoc(doc);

        return(-1);

    }

    if (xmlStrcmp(root-name, (const xmlChar *) “SrcRoot”))

    {

        xmlFreeDoc(doc);

        return -1;

    }

    

    cur = root-xmlChildrenNode;

    while (cur != NULL) 

    {

        if ((!xmlStrcmp(cur-name, (const xmlChar *)”Column”)))

        {

            xmlChar *key;

            xmlNodePtr cur_sub = cur;

            cur_sub = cur_sub-xmlChildrenNode;

            while (cur_sub != NULL) 

            {

                if ((!xmlStrcmp(cur_sub-name, (const xmlChar *)”ColID”))) {

                    key = xmlNodeListGetString(doc, cur_sub-xmlChildrenNode, 1);

                    killblank((char*)key);

                    srcfilefmt[cnt].ColID = atoi((char*)key);

                    xmlFree(key);

                }

                if ((!xmlStrcmp(cur_sub-name, (const xmlChar *)”ColCode”))) {

                    key = xmlNodeListGetString(doc, cur_sub-xmlChildrenNode, 1);

                    killblank((char*)key);

                    strcpy(srcfilefmt[cnt].ColCode, (char*)key);

                    xmlFree(key);

                }

                else if ((!xmlStrcmp(cur_sub-name, (const xmlChar *)”ColName”))) {

                    key = xmlNodeListGetString(doc, cur_sub-xmlChildrenNode, 1);

                    killblank((char*)key);

                    strcpy(srcfilefmt[cnt].ColName, (char*)key);

                    xmlFree(key);

                }

                else if ((!xmlStrcmp(cur_sub-name, (const xmlChar *)”ColType”))) {

                    key = xmlNodeListGetString(doc, cur_sub-xmlChildrenNode, 1);

                     killblank((char*)key);

                    strcpy(srcfilefmt[cnt].ColType, (char*)key);

                    xmlFree(key);

                }

                else if ((!xmlStrcmp(cur_sub-name, (const xmlChar *)”ColComment”))) {

                    key = xmlNodeListGetString(doc, cur_sub-xmlChildrenNode, 1);

                    killblank((char*)key);

                    strcpy(srcfilefmt[cnt].ColComment, (char*)key);

                    xmlFree(key);

                }

                cur_sub = cur_sub-next;

            }

            cnt++;

        }

        cur = cur-next;

    }

    xmlFreeDoc(doc); 

    return cnt;

}

SrcRoot

    Column

        ColID1/ColID

        ColCodekmh/ColCode

        ColName欄位1/ColName

        ColTypeVARCHAR(11)/ColType

    /Column

    Column

        ColID2/ColID

        ColCodedfkmh/ColCode

        ColName欄位2/ColName

        ColTypeVARCHAR(11)/ColType

    /Column

    Column

        ColID3/ColID

        ColCodehbh/ColCode

        ColName欄位3/ColName

        ColTypeINTEGER(10)/ColType

    /Column

/SrcRoot

C語言 格式符解析

printf(“a=%4d,b=%6.2f,c=%c,d=%s”,12,3.456,『A’,「hello”);

%4d

對應後面第一個數值12,以整型佔4個字元列印輸出,

%6.2f

以實型列印輸出,格式輸出為佔6個字元,列印小數點後兩位。。四捨五入為3.46,

把3.456改為3.454,看看

%c列印字元型

%s字元串型

跪求:如何正確地選用數據類型?(C語言)

char是固定長度字元類型,varchar是可變長度的字元類型,在檢索時char列會刪除尾部的空格,MyISAM存儲引擎建議使用固定長度的數據列替代可變長度的數據列,MEMORY存儲引擎目前都使用固定長度的數據行存儲。InnoDB存儲引擎建議使用varchar。

保存較大文本時通常會使用text或者blob。二者的差別是blob能用來保存二進位數據比如照片,而text只能保存字元數據。text和blob值會引起一些性能問題,特別是在執行了大量的刪除操作時。可以使用合成的索引來提高大文本欄位(BLOB 或TEXT)的查詢性能。

擴展資料:

注意事項:

在MySQL中支持的5個主要整數類型是TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。這些類型在很大程度上是相同的,只有存儲的值的大小是不相同的。

使用一個寬度指示器不會影響欄位的大小和可以存儲的值的範圍。萬一需要對一個欄位存儲一個超出許可範圍的數字,MySQL會根據允許範圍最接近的一端截短後再進行存儲。還有一個比較特別的地方是MySQL會在不合規定的值插入表前自動修改為0。

參考資料來源:百度百科-數據類型

原創文章,作者:JHTS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147183.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JHTS的頭像JHTS
上一篇 2024-11-01 14:07
下一篇 2024-11-01 14:07

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python渲染HTML庫

    Python渲染HTML庫指的是能夠將Python中的數據自動轉換為HTML格式的Python庫。HTML(超文本標記語言)是用於創建網頁的標準標記語言。渲染HTML庫使得我們可以…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論