Python中的“ C风格”字符串

sc_*_*ray 1 python string null

一个非常普遍的问题是如何反转C样式字符串。根据定义,C样式字符串是一个以null('\ 0')结尾的字符串。使用C(或C ++),可以使用指针来操纵字符串以就地反转其内容。

如果有人问“如何在Python中反转C样式的字符串?”,那么可能的答案是什么?

谢谢

non*_*ot1 5

如果您需要“在Python中反转C样式的字符串”,我认为最终结果也必须是C样式的字符串。

这就是我要理解的问题,但是以上答案并不支持这一点。

请参阅下面的互动式会议:

>>> 
>>> original = "abc\0"
>>> finish_correct = "cba\0"
>>> original
'abc\x00'
>>> finish_correct
'cba\x00'
>>> 
>>> answer = original[:-1]  # remove final null
>>> answer = answer[::-1]  # reverse string
>>> # Extended slice syntax:  [begin:end:step]
>>> # So, [::-1] means take whole string, but in reverse.
>>> answer
'cba'
>>> answer = answer + "\0"
>>> answer
'cba\x00'
>>> answer == finish_correct
True
Run Code Online (Sandbox Code Playgroud)

还要注意,Python字符串是不可变的。这意味着它们永远无法更改。您可以创建分配给相同变量名称的新字符串,但是给定字符串的内存图像将永远不会改变。因此,“在原处反转字符串”的概念在Python中不会发生。

希望这可以帮助。 如果是这样,请投票并接受答案。谢谢。:-)