任务
学到如何设计一个读入字符串,并且按照字符串信息中规定的颜色,输出相应颜色文本内容的方法程序。
例如当我们:
- 输入:red:color content, 输出红色的:color content
- 输入:blue:color content,输出蓝色的:color content
- 输入:yellow:color content,输出黄色的:color content
编码
输入输出很好设计,关键是如何让字体显示不同的颜色呢
转义字符
1
| 格式:\033[属性代码{;属性代码...}m输出内容\033[0m
|
1 2 3 4 5 6
| #include <stdio.h>
int main() { printf("\033[1;4;33mhello color\033[0m"); return 0; }
|
- 0 代表关闭所有属性
- 1 代表高亮 / 粗体
- 4 代表下划线
- 33 代表黄色
思考题
1,位数输出
1 2 3 4
| 计算一个输入整数的十进制表示的位数? 条件 1:允许有多余输出的情况下,怎么实现? 条件 2:只允许输出数字位数的时候,又该怎么实现? 请单纯考虑使用 printf 一族函数方法实现。
|
实现
1 2 3 4 5 6 7 8 9 10 11
| #include <stdio.h>
int main() { int n; scanf("%d", &n); printf(" has %d digits\n", printf("%d", n)); char output[50]; int ret = sprintf(output, "%d", n); printf("%d\n", ret); }
|
2,读入一行字符串
1 2 3 4
| 请大家自行实现一个读入一行字符串,并且输出相关内容的程序,思考如下: 条件 1:如果字符串中没有空格,怎么实现? 条件 2:如果字符串中有空格,又该怎么实现? 请单纯考虑用 scanf 一族函数方法实现。
|
实现
1 2 3 4 5 6 7 8
| #include <stdio.h> char str[100]; int main() { scanf("%[^\n]s", str); printf("%s\n", str); return 0; }
|
参考资料
部分颜色代码
1 2 3 4 5 6 7 8 9
| 字背景颜色: 40--49 字颜色: 30--39 40: 黑 30: 黑 41: 红 31: 红 42: 绿 32: 绿 43: 黄 33: 黄 44: 蓝 34: 蓝 45: 紫 35: 紫 46: 深绿 36: 深绿 47:白色 37:白色
|
小结
此文记录我复习和巩固C语言基础的开端,后面会发布一系列学习笔记,加油!