逐步打印字符
今天在b站比特课程上又学了一个有意思的循环玩法
将一个想要显示的字符串缓慢的打印出来
代码如下
#include <stdio.h>
#include <string.h> //引入strlen函数头文件
int main()
{
char arr1[] = "hello word!!!";
char arr2[] = "#############";
int left = 0; // 定义最左侧下标元素
int right = strlen(arr2) - 1; // 在顶部引入string头文件以成功使用strlen函数计算两个数组相同长度
while (left <= right) // 使用while循环来循环打印
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
left++; // 想要显示第二个字符必须让left++
right--; // 想要显示倒数第二个字符必须要right--
}
return 0;
slee函数的使用
但是这样是直接打印出来的不太符合我们的预期所以我们需要用到sleep函数
#include <stdio.h>
#include <string.h> //引入strlen函数头文件
#include <unistd.h> //引入时间延迟函数sleep头文件
int main()
{
char arr1[] = "hello word!!!";
char arr2[] = "#############";
int left = 0; // 定义最左侧下标元素
int right = strlen(arr2) - 1; // 在顶部引入string头文件以成功使用strlen函数计算两个数组相同长度
while (left <= right) // 使用while循环来循环打印
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
sleep(1); // 使用sleep函数来延迟
left++; // 想要显示第二个字符必须让left++
right--; // 想要显示倒数第二个字符必须要right--
}
return 0;
}
sleep代码声明
#include <unistd.h>:引入了 sleep 函数的声明。
sleep(1):使程序暂停 1秒。sleep 函数的参数是要暂停的秒数
特点
通过 sleep
函数,可以控制程序的执行节奏,这在需要定时执行某些操作或者等待某些资源可用时非常有用。
打印优化
但是这样打印显示出来行数太多 显然是非常不好的 所以改进一下代码
#include <stdio.h>
#include <string.h> //引入strlen函数头文件
#include <unistd.h> //引入时间延迟函数sleep头文件
#include <stdlib.h> //引入system命令提示符函数函数库以便清理行数
int main()
{
char arr1[] = "hello word!!!";
char arr2[] = "#############";
int left = 0; // 定义最左侧下标元素
int right = strlen(arr2) - 1; // 在顶部引入string头文件以成功使用strlen函数计算两个数组相同长度
while (left <= right) // 使用while循环来循环打印
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
sleep(1); // 使用sleep函数来延迟
system("cls"); // 清理屏幕防止多行打印
left++; // 想要显示第二个字符必须让left++
right--; // 想要显示倒数第二个字符必须要right--
}
return 0;
}
总结
这个程序实现了一个简单的字符替换动画效果,逐步从两端向中间填充字符串,并使用 sleep
函数来延迟显示,system("cls")
来清屏,最终产生动态效果 今天又是进步的一天