C语言从头学64—学习头文件stdlib.h(三)

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值