我有以下文件和内容
1.txt
fruit="mango"
C文件
#include<stdio.h>
void main()
{
char *cmd=NULL;
system("sed -c -i /^[[:blank:]]*fruit[[:blank:]]*=/s/=.*/=\"apple\"/ 1.txt");
}
o / p必须是fruit =“ apple” 但它显示的是fruit = apple(双引号不会出现)
当我将命令作为Linux命令单独尝试时,它会显示双引号。
答案 0 :(得分:2)
在C字符串文字中,\"
是"
字符的转义序列。看来您也想在外壳程序中以"
字符转义\
字符。为此,您应该在C字符串文字中将其写为\\\"
。字符串文字源中的\\
在实际的字符串对象(\
的数组)中产生单个char
。字符串文字源中的\"
在实际的字符串对象中产生一个"
。