在C字符串中转义花括号

时间:2015-10-15 09:28:37

标签: c string curly-braces

我正在C中进行我的第一次练习,并希望做到以下几点:

与我的C代码一起运行的程序以下列格式读取输入(我不能改变它):

  

{" inputname":0}

我的C代码应该从命令行输入中读取字符串。如果我输入上面引用的确切形式,它可以正常工作。但是,在命令行中放置大括号是令人讨厌的(例如,我的程序不会让我写它们)。

所以我想将输入拼凑在一起,并在代码中自动将括号括起来,所以命令窗口的输入只需要" inputname":0 而不是 {"输入名称":0}

当我尝试将三个字符串 {输入} 放在一起时,我得到了

  

错误:从类型中指定类型'char [200]'时出现不兼容的类型   'char *'

一旦我添加第二个护腕。

那我该怎么办?

1 个答案:

答案 0 :(得分:1)

注意:阅读错误消息后,所有这些都是猜测

错误是说你基本上不能分配给一个数组。例如,如果您有例如。

char string[200];

然后你不能做

string = "Foobar";

const char *open_brace = "{";
string = open_brace;

如果要设置数组,则必须使用strcpy 复制

strcpy(string, "Foobar");

strcpy(string, open_brace);

如果您想在字符串中附加内容,则使用strcat 连接另一个字符串:

const char close_brace = "}";
strcat(string, close_brace);

上面将字符串"}"附加到数组string的末尾。

但要小心,所以你不要溢出数组并写出界限。