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

C++中向stdout输出时转义换行字符且不修改字符串字面量的方法

解决方案

要在不修改原字符串字面量的前提下,将字符串中的换行符转义为\n输出,核心思路是遍历字符串的每个字符,对换行符'\n'做转义处理后输出,其余字符直接输出。

具体实现代码

#include <stdio.h>

// 自定义转义输出函数
void print_with_escaped_newlines(const char *str) {
    while (*str != '\0') {
        if (*str == '\n') {
            // 输出转义后的\n,注意反斜杠需要用\\转义
            fputs("\\n", stdout);
        } else {
            // 普通字符直接输出
            fputc(*str, stdout);
        }
        str++;
    }
    // 最后添加一个换行符,匹配目标输出格式
    fputc('\n', stdout);
}

int main() {
    const char *str = "Hello\nWorld";
    print_with_escaped_newlines(str);
    return 0;
}

代码说明

  1. 遍历逻辑:通过while (*str != '\0')循环遍历字符串,直到遇到字符串结束符'\0'。
  2. 转义处理:当检测到字符是'\n'时,使用fputs("\\n", stdout)输出转义序列——C语言中要输出单个反斜杠,必须用两个反斜杠\\来转义。
  3. 普通字符:非换行符的字符直接用fputc输出到标准输出。

运行这段代码后,输出结果为:

Hello\nWorld

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:25:37