最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言字符串轉(zhuǎn)換為Python字符串的方法

 更新時(shí)間:2020年07月31日 11:31:19   作者:David Beazley  
這篇文章主要介紹了C語(yǔ)言字符串轉(zhuǎn)換為Python字符串的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

問(wèn)題

怎樣將C中的字符串轉(zhuǎn)換為Python字節(jié)或一個(gè)字符串對(duì)象?

解決方案

C字符串使用一對(duì) char *int 來(lái)表示, 你需要決定字符串到底是用一個(gè)原始字節(jié)字符串還是一個(gè)Unicode字符串來(lái)表示。 字節(jié)對(duì)象可以像下面這樣使用 Py_BuildValue() 來(lái)構(gòu)建:

char *s; /* Pointer to C string data */
int len; /* Length of data */

/* Make a bytes object */
PyObject *obj = Py_BuildValue("y#", s, len);

如果你要?jiǎng)?chuàng)建一個(gè)Unicode字符串,并且你知道 s 指向了UTF-8編碼的數(shù)據(jù),可以使用下面的方式:

PyObject *obj = Py_BuildValue("s#", s, len);

如果 s 使用其他編碼方式,那么可以像下面使用 PyUnicode_Decode() 來(lái)構(gòu)建一個(gè)字符串:

PyObject *obj = PyUnicode_Decode(s, len, "encoding", "errors");

/* Examples /*
obj = PyUnicode_Decode(s, len, "latin-1", "strict");
obj = PyUnicode_Decode(s, len, "ascii", "ignore");

如果你恰好有一個(gè)用 wchar_t *, len 對(duì)表示的寬字符串, 有幾種選擇性。首先你可以使用 Py_BuildValue()

wchar_t *w; /* Wide character string */
int len; /* Length */

PyObject *obj = Py_BuildValue("u#", w, len);

另外,你還可以使用 PyUnicode_FromWideChar() :

PyObject *obj = PyUnicode_FromWideChar(w, len);

對(duì)于寬字符串,并沒(méi)有對(duì)字符數(shù)據(jù)進(jìn)行解析——它被假定是原始Unicode編碼指針,可以被直接轉(zhuǎn)換成Python。

討論

將C中的字符串轉(zhuǎn)換為Python字符串遵循和I/O同樣的原則。 也就是說(shuō),來(lái)自C中的數(shù)據(jù)必須根據(jù)一些解碼器被顯式的解碼為一個(gè)字符串。 通常編碼格式包括ASCII、Latin-1和UTF-8. 如果你并不確定編碼方式或者數(shù)據(jù)是二進(jìn)制的,你最好將字符串編碼成字節(jié)。 當(dāng)構(gòu)造一個(gè)對(duì)象的時(shí)候,Python通常會(huì)復(fù)制你提供的字符串?dāng)?shù)據(jù)。 如果有必要的話,你需要在后面去釋放C字符串。 同時(shí),為了讓程序更加健壯,你應(yīng)該同時(shí)使用一個(gè)指針和一個(gè)大小值, 而不是依賴NULL結(jié)尾數(shù)據(jù)來(lái)創(chuàng)建字符串。

以上就是C語(yǔ)言字符串轉(zhuǎn)換為Python字符串的方法的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言字符串轉(zhuǎn)換為Python字符串的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C C++ 算法實(shí)例大全

    C C++ 算法實(shí)例大全

    這篇文章主要介紹了C C++ 算法實(shí)例大全,里面大量的實(shí)例介紹,學(xué)習(xí)c語(yǔ)言的朋友可以收藏
    2016-12-12
  • QString的常用方法(小結(jié))

    QString的常用方法(小結(jié))

    這篇文章主要介紹了QString的常用方法(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C語(yǔ)言實(shí)現(xiàn)掃雷小游戲(擴(kuò)展版)

    C語(yǔ)言實(shí)現(xiàn)掃雷小游戲(擴(kuò)展版)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)擴(kuò)展版的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Linux下C語(yǔ)言的幾道經(jīng)典面試題小結(jié)(分享)

    Linux下C語(yǔ)言的幾道經(jīng)典面試題小結(jié)(分享)

    下面小編就為大家?guī)?lái)一篇Linux下C語(yǔ)言的幾道經(jīng)典面試題小結(jié)(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • 詳解C++如何高效利用CPU緩存

    詳解C++如何高效利用CPU緩存

    高效利用CPU緩存是編寫(xiě)高性能C++代碼的關(guān)鍵之一,所以這篇文章小編主要來(lái)和大家介紹一下C++如何實(shí)現(xiàn)高效利用CPU緩存,需要的可以參考一下
    2024-02-02
  • Qt使用QChart實(shí)現(xiàn)靜態(tài)顯示溫度變化曲線

    Qt使用QChart實(shí)現(xiàn)靜態(tài)顯示溫度變化曲線

    QChart模塊是Qt?Charts庫(kù)的基礎(chǔ),提供了用于創(chuàng)建和顯示各種類(lèi)型圖表的類(lèi)和接口,本文主要介紹了如何使用QChart實(shí)現(xiàn)動(dòng)態(tài)顯示3個(gè)設(shè)備的溫度變化曲線,感興趣的可以了解一下
    2023-06-06
  • vs2022?qt環(huán)境搭建調(diào)試的方法步驟

    vs2022?qt環(huán)境搭建調(diào)試的方法步驟

    最近net6和vs2022發(fā)布,本文就詳細(xì)的介紹一下vs2022?qt環(huán)境搭建調(diào)試的方法步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 數(shù)據(jù)結(jié)構(gòu)之歸并排序的實(shí)例詳解

    數(shù)據(jù)結(jié)構(gòu)之歸并排序的實(shí)例詳解

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之歸并排序的實(shí)例詳解的相關(guān)資料,這里對(duì)歸并排序進(jìn)行詳細(xì)介紹,需要的朋友可以參考下
    2017-08-08
  • 詳解Qt如何使用QtWebApp搭建Http服務(wù)器

    詳解Qt如何使用QtWebApp搭建Http服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了Qt如何使用QtWebApp搭建Http服務(wù)器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • C++深入講解對(duì)象的銷(xiāo)毀之析構(gòu)函數(shù)

    C++深入講解對(duì)象的銷(xiāo)毀之析構(gòu)函數(shù)

    構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)被系統(tǒng)自動(dòng)調(diào)用,而析構(gòu)函數(shù)(Destructor)在對(duì)象被撤銷(xiāo)時(shí)被自動(dòng)調(diào)用,相比構(gòu)造函數(shù),析構(gòu)函數(shù)要簡(jiǎn)單的多
    2022-04-04

最新評(píng)論

东丽区| 兰溪市| 乳源| 巫溪县| 连云港市| 库伦旗| 阳高县| 江都市| 剑川县| 积石山| 丁青县| 荥经县| 兰考县| 东海县| 永宁县| 荆门市| 盐山县| 西峡县| 阿城市| 乌鲁木齐县| 兴安盟| 若尔盖县| 呼玛县| 高陵县| 武穴市| 江西省| 苍溪县| 集安市| 新化县| 丰镇市| 河南省| 子洲县| 宝清县| 克山县| 静安区| 滁州市| 灵宝市| 那坡县| 郁南县| 甘肃省| 收藏|