在python中是否有任何strncpy()等效函数?

时间:2013-08-30 14:38:37

标签: python

python中的str的strncpy()是否有任何等效函数? 我想从第一个字符串中替换第二个字符串中的6个字符。 '美妙'应该被'美丽'取代。以下是C中的代码。

str1 = "wonderful";
str2 = "beautiful";
strncpy(str2,str1,6); 

我想在python中这样做。

提前致谢。

4 个答案:

答案 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