|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 风过无痕1989 于 2020-8-2 12:20 编辑
// 电子屏字符向左移动
#include<stdio.h>
#include<windows.h>
int main()
{
char str[25];
char strk[25];
char *p1 = str;
char *p2 = strk;
int i,j,k,l,m = 32,n = 97;
/* int len = sizeof(str) / sizeof(char); */
for (l = 0;l<= 25 ;l++) // 数组 str 全部格式化为空格
{
str[l] = m;
}
for (l = 0;l <= 25;l++) // 将26个字母装入数组 strk
{
strk[l] = n;
n += 1;
}
/*
for (i = 1;i <= 26;i++)
{
printf("%c",*p1++);
}
printf("\n");
for (j =1;j <= 26;j++)
{
printf("%c",*p2++);
}
Sleep(3000);
*/
for (k = 1;k <= 25;k++) // 电子屏输出总字符数控制
{
for (i = 1;i <= 25 - k;i++) // 输出空格数
{
printf("%c",*p1++);
}
for (j =1;j <= k;j++) // 输出字符数
{
printf("%c",*p2++);
}
Sleep(500);
system("cls");
}
printf("\n");
}
求助三个问题:
1、int len = sizeof(str) / sizeof(char); 计算出来的长度为什么是25,而不是26?
2、k = 2 之后输出就是乱码了,为什么?
3、我这个方法当然是最笨的,关于向左移动还有哪些先进的算法?
|
|