Skip to main content
 首页 » 编程设计

python之Python 中的“C 风格”字符串

2025年05月04日18落叶无声

一个非常流行的问题是如何反转 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 中发生。

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