擅长:python、mysql、java
<p>详细,但没有正则表达式,同时处理指针和数组(也没有正则表达式):</p>
<pre><code>def new_arguments(func_string):
def argument_replace(arguments):
new_arguments = []
for argument in arguments.split(', '):
typ, var = argument.split()
if typ.endswith('*'):
typ = 'ref ' + typ.replace('*', '')
if var.endswith('[]'):
var = var.replace('[]', '')
typ += '[]'
new_arguments.append(' '.join([typ, var]))
return ', '.join(new_arguments)
func_name = func_string[:func_string.index('(')]
arguments = func_string[func_string.index('(')+1:func_string.index(')')]
return ''.join((func_name, '(', argument_replace(arguments), ')'))
string = 'void demofun(double* output, double db4nsfy[], double VdSGV[], int length)'
print new_arguments(string)
#void demofun(ref double output, double[] db4nsfy, double[] VdSGV, int length)
</code></pre>