一个非常流行的问题是如何反转 C 风格的字符串。根据定义,C-Style 字符串是以 null('\0') 结尾的字符串。使用 C(或可能是 C++),可以使用指针来操作字符串以就地反转其内容。
如果有人问这个问题,“你如何在 Python 中反转 C 风格的字符串?”,一些可能的答案是什么?
谢谢
最佳答案
如果需要“在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
另请注意,Python 字符串是不可变的。这意味着它们永远无法更改。您可以创建分配给相同变量名的新字符串,但给定字符串的内存图像永远不会改变。因此,“就地反转字符串”的概念不可能在 Python 中发生。
希望这有帮助。如果是这样,请投票并接受答案。谢谢。 :-)
关于python - Python 中的“C 风格”字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4238537/