我想使用Python print
语句打印一个C字符串.该数组vendorName
包含ASCIIZ C字符串A ANTHONY & SONS INC
.我的动机是将C字符串转换为Python字符串,以便我可以使用所有Python字符串方法.
我有一个结构:
class _vendrRecord(Structure): _pack_ = 1 # pack the struct _fields_ = [ ("vendorName" ,c_ubyte *(40 + 1)), ("ytdPayments" ,c_ulong), ]
我想打印字符串"vendorName",这是ASCIIZ.
我可以使用printf打印它,如下所示:
printf(b"%s\n", vendrRecord.vendorName)
我试过这个,print(vendrRecord.vendorName)
但它只打印地址.根据Jamie Nicholl-Shelley提供的信息,我试过print(cast(vendrRecord.vendorName,c_char_p).value)
但是给了b'A ANTHONY & SONS INC'
.我想要简单A ANTHONY & SONS INC
请注意print(vendrRecord.ytdPayments)
正确打印.