文章目录
一.复习
1.strlen函数的使用
#include <stdio.h>
#include <string.h>
int main(){
char arr[]="abc";//这个数组实际放的是:a、b、c、\0 四个元素(字符串)
int len =strlen(arr);//求字符串长度
printf("%d",len);//结果:3
return 0;
}
strlen函数统计了 ' \0 ' 之前的元素长度
2.sizeof的使用
#include<stdio.h>
int main()
{
char arr2[] = "abc";//这个数组实际放的是:a、b、c、\0 四个元素(字符串)
int len = sizeof(arr2) / sizeof(arr2[0]);//求元素个数
printf("%d", len); //结果:4
return 0;
}
sizeof 求的是元素个数(包括 ‘ \0’)
二、演示多个字符从两端移动,向中间汇聚
1.代码实现
用数组arr1的元素来代替arr2中的元素据可以达到效果。
#include<stdio.h>
int main()
{
char arr1[] = "nice to meet you!!!";//字符数组
char arr2[] = "###################";
int left = 0;
//int right = strlen(arr2) - 1;//下标
int right=sizeof(arr1)/sizeof(arr1[0])-2;//下标
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
left++;
right--;
}
return 0;
}
循环条件为:left<= right ,此时二者之间至少还有一个元素
2.Sleep函数
如果想让代码执行结果慢一点,可用Sleep函数(S大写)来延迟输入,单位是毫秒
#include<stdio.h>
#include<windows.h>
int main()
{
char arr1[] = "nice to meet you!!!";//字符数组
char arr2[] = "###################";
int left = 0;
//int right = strlen(arr2) - 1;//下标
int right=sizeof(arr1)/sizeof(arr1[0])-2;//下标
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(1000);//1000毫秒,要加头文件 #include<windows.h>
left++;
right--;
}
return 0;
}
可以清楚的看到运行时间变长了
3.system函数
用system("cls") 可以清理屏幕,使结果在同一行输出
#include<stdio.h>
#include <windows.h>
#include <stdlib.h>
int main()
{
char arr1[] = "nice to meet you!!!";//字符数组
char arr2[] = "###################";
int left = 0;
//int right = strlen(arr2) - 1;//下标
int right=sizeof(arr1)/sizeof(arr1[0])-2;//下标
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(1000);
system("cls");//需要头文件 #include <stdlib.h>
//作用:清理屏幕,使输出结果是一行
//但此时最后一行的结果也会被清理,需要再次输出
left++;
right--;
}
printf("%s\n",arr2);//再次输出
return 0;
}
执行结果: