python中的str的strncpy()是否有任何等效函数? 我想从第一个字符串中替换第二个字符串中的6个字符。 '美妙'应该被'美丽'取代。以下是C中的代码。
str1 = "wonderful";
str2 = "beautiful";
strncpy(str2,str1,6);
我想在python中这样做。
提前致谢。
答案 0 :(得分:6)
我想从第一个字符串
替换第二个字符串中的6个字符
str2 = str1[:6] + str2[6:]
答案 1 :(得分:5)
你不会在python中复制字符串,因为它们是不可变的。你只需像这样重新分配它们:
str2 = str1[:6] + str2[6:]
您也将目的地和源字符串混淆了。
答案 2 :(得分:4)
Python字符串是不可变的,因此您无法像在其他语言中那样修改它们。您必须创建一个新字符串并重新分配str2
:
str2 = str1[:6] + str2[6:]
答案 3 :(得分:3)
如果你想要就地修改(普通字符串是不可变的),你可以使用bytearray
:
>>> str1 = bytearray("wonderful")
>>> str2 = bytearray("beautiful")
for i in xrange(6):
str2[i] = str1[i]
...
>>> print str2
wonderful
功能:
def strncpy(a, b, ind1, ind2):
for i in xrange(ind1-1, ind2):
a[i] = b[i]
...
>>> str1 = bytearray("wonderful")
>>> str2 = bytearray("beautiful")
>>> strncpy(str2, str1, 1, 6)
>>> print str2
wonderful