没有合适的资源?快使用搜索试试~ 我知道了~
首页C语言字符串转换为Python字符串的方法
资源详情
资源评论
资源推荐

C语言字符串转换为语言字符串转换为Python字符串的方法字符串的方法
主要介绍了C语言字符串转换为Python字符串的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感
兴趣的朋友可以了解下
问题问题
怎样将C中的字符串转换为Python字节或一个字符串对象?
解决方案解决方案
C字符串使用一对 char * 和 int 来表示, 你需要决定字符串到底是用一个原始字节字符串还是一个Unicode字符串来表示。 字节
对象可以像下面这样使用 Py_BuildValue() 来构建:
char *s; /* Pointer to C string data */
int len; /* Length of data */
/* Make a bytes object */
PyObject *obj = Py_BuildValue("y#", s, len);
如果你要创建一个Unicode字符串,并且你知道 s 指向了UTF-8编码的数据,可以使用下面的方式:
PyObject *obj = Py_BuildValue("s#", s, len);
如果 s 使用其他编码方式,那么可以像下面使用 PyUnicode_Decode() 来构建一个字符串:
PyObject *obj = PyUnicode_Decode(s, len, "encoding", "errors");
/* Examples /*
obj = PyUnicode_Decode(s, len, "latin-1", "strict");
obj = PyUnicode_Decode(s, len, "ascii", "ignore");
如果你恰好有一个用 wchar_t *, len 对表示的宽字符串, 有几种选择性。首先你可以使用 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);
对于宽字符串,并没有对字符数据进行解析——它被假定是原始Unicode编码指针,可以被直接转换成Python。
讨论讨论
将C中的字符串转换为Python字符串遵循和I/O同样的原则。 也就是说,来自C中的数据必须根据一些解码器被显式的解码为
一个字符串。 通常编码格式包括ASCII、Latin-1和UTF-8. 如果你并不确定编码方式或者数据是二进制的,你最好将字符串编
码成字节。 当构造一个对象的时候,Python通常会复制你提供的字符串数据。 如果有必要的话,你需要在后面去释放C字符
串。 同时,为了让程序更加健壮,你应该同时使用一个指针和一个大小值, 而不是依赖NULL结尾数据来创建字符串。
以上就是C语言字符串转换为Python字符串的方法的详细内容,更多关于C语言字符串转换为Python字符串的资料请关注我们
其它相关文章!




















weixin_38617001
- 粉丝: 5
- 资源: 902
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0