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

标签 python string null

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

相关文章:

python - 如何将HSV色彩空间的V channel 的值设置为恒定值

javascript - 检查 null 不适用于 ajax json 数据

c# - 在原始字符串中获取函数参数值的最佳 C# 正则表达式模式?

JQuery html字符串输入框

c++ - Win32 应用程序。 HBITMAP LoadImage 无法加载任何内容

ios - 为什么(或何时)我的应用会被 iOS 重置?

尝试使用 Google Python API 在 Django 中设置 oauth2 时,Python 找不到模块 'clientsecrets'

python - 如何向量化此操作

python - Google StackDriver 将日志与父请求关联起来 python 3

javascript - 将字符串直接拆分为变量