我是靠谱客的博主 糟糕皮带,这篇文章主要介绍C语言快速生成简洁优雅的黑窗口菜单-二重指针、指针数组、字符串、字符的使用,现在分享给大家,希望可以做个参考。

在这里插入图片描述
在C的编程过程中,是不是都这样写的呢?
在这里插入图片描述
上面的黑窗口菜单硬输出,在调节间距的时候,真的有点心累,费了好大功夫才完成,且做完之后没有私毫成就感。不过也还行,看得过去,不算垃圾,是垃圾Plus!!!
我想随心所欲地把玩这些东西!或宽或窄,或高或低。
这样!在这里插入图片描述
还有这样!
在这里插入图片描述
于是我就开始思考了一番,得到以下代码。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include<stdio.h> #include<string.h> #define SPAN 30; //水平跨度 #define VerticalGap 1 //行间距,取值最好为1或2,也可以更大 void menu(char** menu,int length);//二重指针和指针数组的应用 void duplicate(int size,char token);//给定整型值size和符号token,输出size个token,结尾不换行 void main() { char* menu1[] = { "1.reinitialize list", "2.present list", "3.append element","4.delete element", "5.modify element","6.insert element", "7.clear list","8.exit", "9.clear screen"}; char* menu2[]={"Devices", "1.Printers&Scanners","2.Mouse", "3.Touchpad","4.Typing","5.USB"};//指针数组 menu(menu1,sizeof(menu1)/sizeof(char*)); menu(menu2,sizeof(menu2)/sizeof(char*)); } void menu(char** origin,int length) { int span=SPAN; int gapLength; duplicate(span,'*'); printf("n"); for (int i = 0; i < length; ++i) { duplicate(1,'*'); gapLength=span-2-(strlen(*(origin+i))); duplicate(gapLength/2,' '); printf("%s",origin[i]); //下面有个不完美的地方,但我们得允许不完美, //接受不完美,始终走在追求完美的路上! if(gapLength%2==0) { duplicate(gapLength/2,' '); }else { duplicate(gapLength/2+1,' '); } duplicate(1,'*'); duplicate(VerticalGap,'n'); } duplicate(span,'*'); printf("n"); } void duplicate(int size,char token) { for (int i = 0; i <size ; ++i) { printf("%c",token); } }

最后

以上就是糟糕皮带最近收集整理的关于C语言快速生成简洁优雅的黑窗口菜单-二重指针、指针数组、字符串、字符的使用的全部内容,更多相关C语言快速生成简洁优雅内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部