You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言的字符数组中写入多行内容?

C语言多行字符数组的双引号问题解决方法

核心问题原因

你遇到的编译错误是因为C语言中字符串字面量用双引号"包裹,内部的双引号会被编译器误判为字符串的结束标记,导致语法错误。替换成单引号也没用,因为单引号在C里仅用于表示单个字符,无法替代字符串的双引号。

两种可行解决方案

1. 转义内部双引号 + 换行转义符

在每个内部双引号前加\转义,同时在每行末尾加\表示字符串延续到下一行:

char palavra2 [] = "{Conversor de Temperatura: °C -> °F}\
                        prg Exemplo_02;\
                        {Declaração de variáveis}\
                        var\
                          int c;\
                          float f;\
                        {Programa principal}\
                          begin\
                          write(\"Informe a temperatura em °C: \");\
                          read(c);\
                          f <- 1.8 * C - 32;\
                          write(\"O correspondente em Fahrenheit é: \", f);\
                        end.";

2. 使用C99原生多行字符串字面量(推荐)

C99及以上标准支持原始字符串字面量,格式为R"(内容)",内部的双引号无需转义,直接编写即可,换行也会被保留:

char palavra2 [] = R"({Conversor de Temperatura: °C -> °F}
                        prg Exemplo_02;
                        {Declaração de variáveis}
                        var
                          int c;
                          float f;
                        {Programa principal}
                          begin
                          write("Informe a temperatura em °C: ");
                          read(c);
                          f <- 1.8 * C - 32;
                          write("O correspondente em Fahrenheit é: ", f);
                        end.)";

这种方式代码更简洁,避免大量转义符,主流IDE(如VSCode、Clion、GCC/Clang编译器)都支持该特性。

内容的提问来源于stack exchange,提问作者MackProgram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:20:47