&引用;“未端接字符串”;在Turbo C编译器上的字符串文字中包含引号时

&引用;“未端接字符串”;在Turbo C编译器上的字符串文字中包含引号时,c,string,character,turbo-c,C,String,Character,Turbo C,我的程序中有这个,它显示了一个错误:Unterminated string char Tok[63][63] = {"%%##","\""}; 是否有其他方法将双引号声明为字符串?这是Turbo C中的一个错误。我尝试过: char Tok[63][63] = { "%%##", "\"" }; int main (int argc, char **argv) { return 0; }; 在gcc上,在正常模式、C89模式和C99模式下使用-Wall,并且编译时没有错误(*)。我还手

我的程序中有这个,它显示了一个错误:Unterminated string

char Tok[63][63] = {"%%##","\""};

是否有其他方法将双引号声明为字符串?

这是Turbo C中的一个错误。我尝试过:

char Tok[63][63] = { "%%##", "\"" };

int
main (int argc, char **argv)
{
  return 0;
};
在gcc上,在正常模式、C89模式和C99模式下使用
-Wall
,并且编译时没有错误(*)。我还手动检查了字符串,它不可能是未终止的

我建议您在字符串文本中使用八进制,即

char Tok[63][63] = { "%%##", "\042" };
看看涡轮增压器C是否喜欢这样


(*)=NB
return 0
不是来自
main()
的好做法-只是为了确保代码以尽可能简单的方式编译而没有警告

您使用的是哪个平台和编译器?这解释了很多,因为这在clang和clang++3.3上都可以通过。如果你本可以选择一个更糟糕的C编译器,我很想看看如何使用。上一个Turbo C(2.0)是在四分之一世纪前发布的。这是一个项目的要求,所以我需要坚持使用编译器。用十六进制等价物(字节值)替换它-例如char(0x22)或者类似的。谢谢prabindh回答了我的问题。这比上面的答案更有效,因为你可以在数组中添加nex一个新元素而不会出错。除了双引号的八进制值是042。Oops-hex/octalthinko-fixed。