11、函数system()
功能:将作为参数的命令字符串传递给操作系统,并让操作系统来执行。
使用格式:system(参1);
参1:命令字符串(可以使用字符串常量、也可以使用char*类型的字符串变量)
常用的命令字符:
a.关于屏幕操作的命令
system("pause") 暂停程序运行,效果相当于getchar()
system("color **") 设置控制台背景、前景颜色;*代表一个16进制数
0—黑色 1—蓝色 2—绿色 3—湖蓝色 4—红色 5—紫色 6—黄色 7—白色 8—灰色 9—淡蓝色
A—淡绿色 B—浅绿色 C—淡红色 D—淡紫色 E—淡黄色 F—亮白色
system("title x") 将控制台标题设置为x
system("cls") 清屏
system(“mode con cols=宽 lines=高”) 设置控制台窗口的大小
b.文件操作:
system("start *") 启动*代表的可执行文件或DOS命令
system("del *") 删除某个文件
system("copy A B") 复制文件
system("move A B") 移动文件
c.系统操作
system("date") 显示日期、设置日期
system("time") 显示时间、设置时间
12、函数qsort()
功能:用来对数组进行快速排序。
使用格式:qsort(参1,参2,参3,参4);
参1:指向要排序的数组开始位置的指针(数组名)
参2:数组成员个数
参3:单个数组成员占用的字节长度。
参4:提供数组比较原则的函数指针(函数名)。
返回值:无
说明:
a.该函数对排序类型没有要求,包括自定义的struct类型,缺点是关键字只有一个。
b.关于数组比较原则函数:将指向数组两个成员的指针作为参数,并比较两个成员。如果第一个参数小于第二个参数返回一个负值;
如果两个参数相等则返回0;如果第一个参数大于第二个参数,返回正值。
13、函数bsearch()
功能:使用二分法(折半法)在有序数组中搜索一个值。
使用格式:bsearch(参1,参2,参3,参4,参5);
参1:指向要查找的值的指针(常量或取址)
参2:指向数组开始位置的指针(数组名)
参3:数组成员的个数
参4:单个数组成员字节长度
参5:提供数组比较原则函数指针(函数名)。
说明:
a.该函数对数组成员的类型没有要求。
b.强调:该函数只适用已经排序好的数组。
c.数组比较原则函数同上一个函数。
14、头文件stdlib.h中还包括有关多字节字符的函数等,前面已经学习过了,不再赘述。
有关实验程序如下:
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
char name[24];
int age;
} Person;
int mySort(Person* p1, Person* p2) //排序原则函数
{
return p1->age - p2->age;
}
int mySort2(int* a,int* b)
{
return *a-*b;
}
int main(void)
{
//实验函数system()
char s[50] = "time";
system(s); //system(time)输出当前时间
system("pause");//暂停程序运行
//实验函数qsort()
Person person[5] = { {"张三",35},{"李四",26},{"王二",24},{"李大",40},{"赵五",22} };
qsort(person, 5, sizeof(Person), mySort); //mySort函数在main函数前面
for (int i = 0; i < 5; i++)
{
printf("%s %d", person[i].name, person[i].age); //运行结果:赵五 22王二 24李四 26张三 35李大 40
}
printf("\n");
//实验函数bsearch
int x[11] = {1,2,3,4,5,6,7,8,9,10,11};
int* ret;//接收函数返回值
int key=8;//要查找的值
ret = bsearch(&key, x, 11, sizeof(int), mySort2);
if (ret != NULL)printf("要查找的值%d在数组中\n", *ret);//运行结果:要查找的值8在数组中
key = 13;
ret = bsearch(&key, x, 11, sizeof(int), mySort2);
if (ret == NULL)printf("13没有找到...\n"); //运行结果:13没有找到...
getchar();
return 0;
}