一、描述:
编写代码,演示多个字符从两端移动,向中间汇聚(字符串长度相等)
二、程序:
#include<stdio.h>
#include<windows.h>
int main(){
char a[] = "Welcome to Chain!....";
char b[] = "*********************";
int left = 0;
int right = strlen(a) - 1;
while (left <= right){
Sleep(1000);
b[left] = a[left];
b[right] = a[right];
left++;
right--;
printf("%s\r", b);
}
system("pause");
return 0;
}
注意:
(1)Sleep()没有返回值,作用是暂停程序,单位是毫秒。S要大写!!!
比如:Sleep(1000)的意思是暂停1秒。
(2)C语言的\r是回车,要注意的是,它只是将光标回到行首,但不换行。(可用作倒计时功能)
例如:
#include<stdio.h>
#include<windows.h>
int main(){
//Sleep(1000);
printf("abcd\r");
printf("ABCD");
printf("\n");
system("pause");
return 0;
}
先输出abcd,
回车后再输出ABCD,
那么ABCD将覆盖abcd,
所以只显示ABCD.
三、 如果将演示多个字符从两端移动代码中的printf("%s\r", b)换成\n会怎样呢?
int main(){
char a[] = "welcome to Chain!....";
char b[] = "*********************";
int left = 0;
int right = strlen(a) - 1;
while (left <= right){
Sleep(1000);
b[left] = a[left];
b[right] = a[right];
left++;
right--;
printf("%s\n", b);
}
system("pause");
return 0;
}
C语言中\n’的意思是:回车换行。将当前位置移到下一行的开头。
每比较一次,换一次行。直到left>right时,结束。
注意区分\r和\n的用法。