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

如何在C语言中指定字符串中特定字符的颜色?

在C语言中实现控制台单个字符的彩色输出

当然可以实现单个字符的彩色输出,不同操作系统的实现方式略有差异,下面分两种主流平台给出具体实现方案:

Windows 平台

Windows控制台通过SetConsoleTextAttribute函数控制文本颜色,需要引入<windows.h>头文件。你可以在输出单个字符前切换对应颜色,输出完成后记得恢复默认颜色,避免影响后续输出。

示例代码:

#include <stdio.h>
#include <windows.h>

int main() {
    // 获取标准输出的控制台句柄
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    // 红色输出字符'a'
    SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
    printf("a");

    // 绿色输出字符's'
    SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
    printf("s");

    // 蓝色输出字符'd'
    SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE);
    printf("d");

    // 橙色(红+绿组合)输出字符'f'
    SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN);
    printf("f");

    // 恢复默认白色输出
    SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
    printf("\n");

    return 0;
}

颜色说明:Windows的前景色由FOREGROUND_RED、FOREGROUND_GREEN、FOREGROUND_BLUE、FOREGROUND_INTENSITY(高亮)组合而成,橙色是红+绿的基础色组合。

Linux/Unix/macOS 平台

这类系统原生支持ANSI转义序列,直接在printf中输出对应转义码即可控制单个字符颜色,无需额外头文件。

示例代码:

#include <stdio.h>

int main() {
    // 红色输出'a'(基础8色转义码)
    printf("\033[31ma");
    // 绿色输出's'(基础8色转义码)
    printf("\033[32ms");
    // 蓝色输出'd'(基础8色转义码)
    printf("\033[34md");
    // 橙色输出'f'(256色模式转义码)
    printf("\033[38;5;208mf");
    // 恢复默认输出格式
    printf("\033[0m\n");

    return 0;
}

颜色说明:ANSI转义序列中,\033[3Xm对应基础8色;橙色可以用256色模式的38;5;208m实现;\033[0m用于重置所有格式到默认状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:31:11