admin管理员组文章数量:1794759
【C语言】制作一个表白用的移动字幕
今天要分享给大家的是一个非常有意思的字幕变化,可以用在很多的地方,列如:发给你喜欢的人或者是你的好兄弟,我们设定好字后,屏幕上会不断的打印我们想要的内容 ❤ !!!
先给大家讲解原理,方便大家可以后面自行的修改内容和打印方式,首先需要知道我们要打印的内容,这里我以“ I LOVE YOU ”举例子:
我们现在向输出I LOVE YOU 大字幕,首先要考虑的问题就是字幕的打印,我们想要的是大的字幕,而正常的字幕只能在一行且非常的小,完全不够我们表达的意思,而一行一行打又要费大家的很多时间,在这里我提前给大家准备好了
代码语言:javascript代码运行次数:0运行复制 char a[] = { " *****************************************************************************************************************" };
char a1[] = { "******************************************************************************************************************" };
char b[] = { " ****#######*******###********#########****##************##**############****##*******##**#########**####****####**" };//1
char a2[] = { "******************************************************************************************************************" };
char c[] = { " ******###*********###********##*****##*****##**********##***##***************##*****##***##*****##***##******##***" };//2
char a3[] = { "******************************************************************************************************************" };
char d[] = { " ******###*********###********##*****##******##********##****############******##***##****##*****##***##******##***" };// 3
char a4[] = { "******************************************************************************************************************" };
char e[] = { " ******###*********###********##*****##*******##******##*****##******************###******##*****##***##******##***" };// 4
char a5[] = { "******************************************************************************************************************" };
char f[] = { " ******###*********###********##*****##********##****##******############********###******##*****##***##******##***" };// 5
char a6[] = { "******************************************************************************************************************" };
char l[] = { " ******###*********###********##*****##*********##**##*******##******************###******##*****##***##******##***" };// 6
char a7[] = { "******************************************************************************************************************" };
char m[] = { " ******###*********###********##*****##**********#**#********##******************###******##*****##***##******##***" };// 7
char a8[] = { "******************************************************************************************************************" };
char n[] = { " ****#######*******#########**#########**********###*********############********###******#########***##########***" };// 8
这只是我们移动字幕的小前提,下面的才是重点(后续大家想改内容也可以在这里修改)
接下来开始讲解算法和执行步骤了,想要实现代码的变化肯定是需要用到了循环,我们在不断的更新数组中的内容,使得看起来像动态一样的输出,这个时候需要大家运用一个算法,用一数组中的字符不断的替代另一组数组字符的内容,不断的输入就可以实现,动态改变
举个列子:
代码语言:javascript代码运行次数:0运行复制int main()
{
char a[]="abcdef";
char b[]="******";
int set=sizeof(a)/sizeof(char); //计算数组数量
int left=0; //左坐标
int right=sz-2; //右坐标
while(left<=right)
{
b[left]=a[left];
b[right]=b[right];
printf("%s",b);
left++;
right--;
}
return 0;
}
不断的替换数组的内容达到我们想要的效果
代码语言:javascript代码运行次数:0运行复制原理解释清楚了,接下来就是正文内容了,上面我们在进行替换的时候使用了8个字符数组,所以下面需要8个数组的替换,正常情况下,大家根据自己输出内容进行选择就行
#include <stdio.h>
#include <windows.h>
int main()
{
// **************** ****************
char a[] = { " ******************************************************************************************************************" };
char a1[] = { "******************************************************************************************************************" };
char b[] = { " ****#######*******###********#########****##************##**############****##*******##**#########**####****####**" };//1
char a2[] = { "******************************************************************************************************************" };
char c[] = { " ******###*********###********##*****##*****##**********##***##***************##*****##***##*****##***##******##***" };//2
char a3[] = { "******************************************************************************************************************" };
char d[] = { " ******###*********###********##*****##******##********##****############******##***##****##*****##***##******##***" };// 3
char a4[] = { "******************************************************************************************************************" };
char e[] = { " ******###*********###********##*****##*******##******##*****##******************###******##*****##***##******##***" };// 4
char a5[] = { "******************************************************************************************************************" };
char f[] = { " ******###*********###********##*****##********##****##******############********###******##*****##***##******##***" };// 5
char a6[] = { "******************************************************************************************************************" };
char l[] = { " ******###*********###********##*****##*********##**##*******##******************###******##*****##***##******##***" };// 6
char a7[] = { "******************************************************************************************************************" };
char m[] = { " ******###*********###********##*****##**********#**#********##******************###******##*****##***##******##***" };// 7
char a8[] = { "******************************************************************************************************************" };
char n[] = { " ****#######*******#########**#########**********###*********############********###******#########***##########***" };// 8
int sz = sizeof(a1) / sizeof(char);
int left1 = 0;
int right1 = sz - 2; //其中包含\0,加上因为是坐标所以要减2
int left2 = 0;
int right2 = sz - 2;
int left3 = 0;
int right3 = sz - 2;
int left4 = 0;
int right4 = sz - 2;
int left5 = 0;
int right5 = sz - 2;
int left6 = 0;
int right6 = sz - 2;
int left7 = 0;
int right7 = sz - 2;
int left8 = 0;
int right8 = sz - 2;
while (left1 <= right1)
{
a1[left1] = b[left1];
a1[right1] = b[right1];
printf("%s\n", a1);
Sleep(10);
system("cls");
left1++;
right1--;
}
while (left2 <= right2)
{
printf("%s\n", a1);
a2[left2] = c[left2];
a2[right2] = c[right2];
printf("%s", a2);
Sleep(10);
system("cls");
left2++;
right2--;
}
while (left3 <= right3)
{
printf("%s\n", a1);
printf("%s\n", a2);
a3[left3] = d[left3];
a3[right3] = d[right3];
printf("%s", a3);
Sleep(10);
system("cls");
left3++;
right3--;
}
while (left4 <= right4)
{
printf("%s\n", a1);
printf("%s\n", a2);
printf("%s\n", a3);
a4[left4] = e[left4];
a4[right4] = e[right4];
printf("%s", a4);
Sleep(10);
system("cls");
left4++;
right4--;
}
while (left5 <= right5)
{
printf("%s\n", a1);
printf("%s\n", a2);
printf("%s\n", a3);
printf("%s\n", a4);
a5[left5] = f[left5];
a5[right5] = f[right5];
printf("%s", a5);
Sleep(10);
system("cls");
left5++;
right5--;
}
while (left6 <= right6)
{
printf("%s\n", a1);
printf("%s\n", a2);
printf("%s\n", a3);
printf("%s\n", a4);
printf("%s\n", a5);
a6[left6] = l[left6];
a6[right6] = l[right6];
printf("%s", a6);
Sleep(10);
system("cls");
left6++;
right6--;
}
while (left7 <= right7)
{
printf("%s\n", a1);
printf("%s\n", a2);
printf("%s\n", a3);
printf("%s\n", a4);
printf("%s\n", a5);
printf("%s\n", a6);
a7[left7] = m[left7];
a7[right7] = m[right7];
printf("%s", a7);
Sleep(10);
system("cls");
left7++;
right7--;
}
while (left8 <= right8)
{
printf("%s\n", a1);
printf("%s\n", a2);
printf("%s\n", a3);
printf("%s\n", a4);
printf("%s\n", a5);
printf("%s\n", a6);
printf("%s\n", a7);
a8[left8] = n[left8];
a8[right8] = n[right8];
printf("%s", a8);
Sleep(10);
system("cls");
left8++;
right8--;
}
printf("%s\n", a);
printf("%s\n", a1);
printf("%s\n", a2);
printf("%s\n", a3);
printf("%s\n", a4);
printf("%s\n", a5);
printf("%s\n", a6);
printf("%s\n", a7);
printf("%s\n", a8);
printf("%s\n", a);
//aixin();
return 0;
}
代码语言:javascript代码运行次数:0运行复制void aixin()
{
printf(" ******* ********\n");
printf(" ********** **********\n");
printf(" ************ ************\n");
printf(" ***************************\n");
printf(" *************************\n");
printf(" ***********************\n");
printf(" ******************\n");
printf(" ****************\n");
printf(" **********\n");
printf(" ****\n");
}
只需要将代码加入我们上面的代码中,进行引用即可,如果不懂可以私聊我进行询问
最最最重要的来了,我们做好了怎么让别人看到,正常情况下,别人需要安装C语言的软件很头疼,大多数人是小白,这样我们这串代码就失去了作用,大家使用的是 “ Visual Studio ”软件的话,根据下面我的步骤来:
1.Visual Studio上面这个地方有一个Debug 和Release ,写好代码后将Debug改为Release点击。
2.在你创建这个工程的项目目录下,找到Release这个文件
3.打开后可以看到一个exe为后缀的文件
4.将这个发给别人即可
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-09-21,如有侵权请联系 cloudcommunity@tencent 删除int数组算法原理char本文标签: C语言制作一个表白用的移动字幕
版权声明:本文标题:【C语言】制作一个表白用的移动字幕 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754758634a1706036.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论