2

python中C的strncpy()是否有任何等效函数?我想用第一个字符串替换第二个字符串中的 6 个字符。“精彩”应改为“美丽”。以下是 C 中的代码。

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

我想在python中做到这一点。

提前致谢。

4

4 回答 4

6

我想用第一个字符串替换第二个字符串中的 6 个字符

str2 = str1[:6] + str2[6:]
于 2013-08-30T14:41:59.973 回答
5

您不会在 python 中复制字符串,因为它们是不可变的。您只需像这样重新分配它们:

str2 = str1[:6] + str2[6:]

您还混淆了目标字符串和源字符串。

于 2013-08-30T14:41:01.693 回答
4

Python 字符串是不可变的,因此您不能像在其他语言中那样修改它们。您必须创建一个新字符串并重新分配str2

str2 = str1[:6] + str2[6:]
于 2013-08-30T14:42:27.677 回答
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
于 2013-08-30T14:44:44.783 回答