python中C的strncpy()是否有任何等效函数?我想用第一个字符串替换第二个字符串中的 6 个字符。“精彩”应改为“美丽”。以下是 C 中的代码。
str1 = "wonderful";
str2 = "beautiful";
strncpy(str2,str1,6);
我想在python中做到这一点。
提前致谢。
python中C的strncpy()是否有任何等效函数?我想用第一个字符串替换第二个字符串中的 6 个字符。“精彩”应改为“美丽”。以下是 C 中的代码。
str1 = "wonderful";
str2 = "beautiful";
strncpy(str2,str1,6);
我想在python中做到这一点。
提前致谢。
我想用第一个字符串替换第二个字符串中的 6 个字符
str2 = str1[:6] + str2[6:]
您不会在 python 中复制字符串,因为它们是不可变的。您只需像这样重新分配它们:
str2 = str1[:6] + str2[6:]
您还混淆了目标字符串和源字符串。
Python 字符串是不可变的,因此您不能像在其他语言中那样修改它们。您必须创建一个新字符串并重新分配str2
:
str2 = str1[:6] + str2[6:]
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