2014-02-19 17 views
0

我知道这个问题很愚蠢,但是由于发送给它的文本中有数百万个单引号,导致程序崩溃。该文本确实再次由perl调用处理并返回。所以我想在调用perl之前用一些字符替换单引号,并在perl函数返回后将其取消。这样做的最好方法是什么,因为如果我用#或@这样的字符替换它们,那么如果将它们替换回引用可能会导致问题,如果它们包含在原始文本中,那么可以用作替代的最佳模式是什么?最好的方法来替换字符串中的字符,然后在C中取消它的后处理

replace("'", "<something>") 

东西可以是一个字符串....

+0

如果文本中已经有'#'或'@',该怎么办?现在你最终会得到一个''' –

+0

之前没有的'''只保留原始字符串的副本可能会有所帮助。 – PMF

+0

你必须想出一些逃避计划。例如,使用'#'作为引号,使用'##'作为'#'。 '##'的'####'。就像反斜杠方法一样。 –

回答

1
char * bkpstr = strdup(originalString); 
for (char * ptr = originalString; *ptr; ptr++) 
{ 
    if ('\'' == *ptr) { *ptr = REPLACEMENT_CHAR; } 
} 

然后用bkpstr,当你需要原件。

相关问题