使用python在字符串中插入字符
以下是我试图实现的目标:我想取代使用python在字符串中插入字符,python,insert,character,Python,Insert,Character,以下是我试图实现的目标:我想取代 void some_function(int, int *, float); 与 到目前为止,我已经尝试在循环字符串时用chr(97+I)替换“,” text = len("void some_function(int, int *, float);") i = 0 for j in range(0, length) if text[j] == ",": rep = " " + chr(97+i) + " .," tex
void some_function(int, int *, float);
与
到目前为止,我已经尝试在循环字符串时用chr(97+I)替换“,”
text = len("void some_function(int, int *, float);")
i = 0
for j in range(0, length)
if text[j] == ",":
rep = " " + chr(97+i) + " .,"
text = text.replace("," rep)
i = i + 1
j = 0 # resetting the index, but this time I want to find the next occurrence of "," which I am not sure
但这不是工作。如果有更好的方法,请告诉我。最初的想法行不通,因为最后一个参数后面不是一个“,”而是一个“')”
import re
i = 96
def replace(matches):
global i
i += 1
return " " + chr(i) + matches.group(0)
re.sub(',|\)', replace, "void some_function(int, int *, float);")
您正在尝试用python折射C代码?我是python新手,不知道该怎么做!:(如果您试图重构泛型代码,这是一项非常重要的任务。请考虑函数参数跨越多行的情况。具有0或1个参数(无逗号)的情况。如何
void other_函数(void)
你不需要变量名的地方?如果你重构C代码,我认为你最好用一个好的代码文本编辑器来做这件事……答案不错,但应该注意的是,这只会工作一次,因为我是全局的。在那之后,你会得到d,e,f,g……直到它爆炸。我不知道C,但我想知道,有a不是一个问题结果中*和b之间的速度?@BrtH:Nope:int*b
,int*b
,int*b
,甚至int*b
都正确地回答了OP非常具体的情况,但对于fix('joefunc()')
和fix('joefunc(void)
)等问题仍然失败。这不是对答案的挖掘,只是OP的一个注释。
import re
i = 96
def replace(matches):
global i
i += 1
return " " + chr(i) + matches.group(0)
re.sub(',|\)', replace, "void some_function(int, int *, float);")
text = "void some_function(int, int *, float);".replace(',', '%s,') % (' a', 'b')
import re
import string
def fix(text):
n = len(re.findall('[,(]', text))
return re.sub('([,)])', ' %s\\1', text) % tuple(string.letters[:n])