<string.h> ,<stdlib.h>,<windows.h>三个头文件的区别

1. <string.h>

  • 功能:提供了一系列函数用于字符串处理(包括字符数组操作)和内存操作。
  • 主要用途:处理以空字符('\0')结尾的字符串,提供字符串的复制、连接、比较、查找等功能;同时也包含一些内存操作函数(如 memcpy())。
  • 常用函数
    • strlen():返回字符串的长度(不包括 \0)。
    • strcpy():将源字符串复制到目标字符串。
    • strcat():将两个字符串连接起来。
    • strcmp():比较两个字符串。
    • strchr():在字符串中查找第一次出现的指定字符。
    • memcpy():从一个内存位置复制一块内存到另一个位置。
    • memset():设置内存块中的字节值。
  • 例子
#include <string.h>

#include <stdio.h>



int main() {

    char str1[50] = "Hello, ";

    char str2[] = "World!";

   

    strcat(str1, str2);  // 将 str2 连接到 str1 后面

    printf("Concatenated String: %s\n", str1);  // 输出 "Hello, World!"

   

    printf("Length of str1: %zu\n", strlen(str1));  // 输出 13

    return 0;

}

2. <stdlib.h>

  • 功能:提供了与程序控制、内存分配、进程控制、转换等相关的函数。
  • 主要用途:内存管理(如动态内存分配、释放内存)、程序控制(如退出程序)、数学运算(如随机数生成、转换字符串为数字等)以及环境变量操作。
  • 常用函数
    • malloc()、calloc()、free():动态内存分配和释放。
    • exit():终止程序的执行。
    • atoi()、atof():将字符串转换为整数或浮点数。
    • rand()、srand():生成随机数。
    • abs():求绝对值。
    • system():调用操作系统的命令。
  • 例子
    #include <stdlib.h>
    
    #include <stdio.h>
    
    
    
    int main() {
    
        int *arr;
    
        arr = (int *)malloc(5 * sizeof(int));  // 动态分配一个存储5个整数的内存
    
       
    
        if (arr == NULL) {
    
            printf("Memory allocation failed!\n");
    
            return 1;  // 如果内存分配失败,返回错误
    
        }
    
       
    
        for (int i = 0; i < 5; i++) {
    
            arr[i] = i * 10;
    
        }
    
       
    
        for (int i = 0; i < 5; i++) {
    
            printf("%d ", arr[i]);  // 输出 0 10 20 30 40
    
        }
    
       
    
        free(arr);  // 释放动态分配的内存
    
        return 0;
    
    }

  • 对比:两者的对比图如下:

至于具体的区别还是需要通过多打代码自己去探究。

除了上面的两个库函数头文件外,再给大家扩展一个<windows.h>

3. <windows.h>

  • 功能:这是一个平台特定的头文件,用于在 Windows 操作系统上进行系统编程。它包含了 Windows API 的声明,用于访问操作系统的各种功能,如文件管理、窗口管理、线程和进程管理、图形处理、网络通信、时间控制等。
  • 常用功能
    • Windows 系统调用:如 CreateFile()、ReadFile()、WriteFile()、CloseHandle() 等。
    • Windows 窗口管理:如 CreateWindow()、ShowWindow()、MessageBox() 等。
    • 线程和进程控制:如 CreateThread()、ExitThread()、CreateProcess() 等。
    • 时间和延迟函数:如 Sleep()、GetTickCount() 等。
    • 错误处理:如 GetLastError()、SetLastError() 等。
  • 例子
#include <windows.h>

int main() {

    MessageBox(NULL, "Hello, Windows!", "Greetings", MB_OK);

    return 0;

}

下面为大家演示一个实际案例:字符逐步向中间靠拢

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main() {
    char arr1[] = "welcome to bit!!!!";
    char arr2[] = "##################";

    int left = 0;
    int right = strlen(arr2) - 1;

    while (left <= right)
    {
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];
        printf("%s\n", arr2);  // 使用 %s 打印字符数组
        Sleep(1000);  // 跳转时长 
        system("cls");//库函数,可以执行系统命令
        left++;
        right--;
    }
    printf("%s\n",arr2);
    return 0;
}

可以自己手动打一打看看效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值