📜  C库-(1)

📅  最后修改于: 2023-12-03 15:30:15.017000             🧑  作者: Mango

C库介绍

C语言是一种广泛使用的系统编程语言,而C库则是C语言中重要的组成部分之一。C库是一组预定义的函数及其对应的头文件,可以在C程序中调用这些函数来实现各种功能,如字符串操作、文件 I/O、数学运算等。在C语言中,C库分为标准库和第三方库两种,而本文将重点介绍标准库。

标准库
标准输入输出库

stdio.h头文件中包含了一系列用于标准输入输出的函数,如printf、scanf、gets、puts、fread、fwrite等等。这些函数可以让我们进行控制台输入输出、文件读写等操作。

#include <stdio.h>
int main(){
    int a;
    char s[50];
    printf("请输入一个整数:");
    scanf("%d",&a);
    printf("你输入的整数是:%d\n",a);
    printf("请输入一个字符串:");
    gets(s);
    printf("你输入的字符串是:%s\n",s);
    return 0;
}
字符串库

string.h头文件中包含了一系列用于字符串操作的函数,如strcpy、strcat、strcmp、strlen等等。这些函数可以让我们对字符串进行拷贝、连接、比较、计算长度等操作。

#include <stdio.h>
#include <string.h>
int main(){
    char str1[20] = "hello";
    char str2[20] = "world";
    printf("拼接前:%s\n",str1);
    strcat(str1,str2);
    printf("拼接后:%s\n",str1);
    printf("字符串长度:%d\n",strlen(str1));
    if(strcmp(str1,str2) != 0){
        printf("str1和str2不相同");
    }else{
        printf("str1和str2相同");
    }
    return 0;
}
数学库

math.h头文件中包含了一系列用于数学计算的函数,如sin、cos、tan、sqrt、log等等。这些函数可以让我们进行各种数学计算。

#include <stdio.h>
#include <math.h>
int main(){
    double x = 2.0;
    double y = 3.0;
    printf("%lf 的平方根:%lf\n",x,sqrt(x));
    printf("log(%lf):%lf\n",x,log(x));
    printf("%lf 的 %lf 次幂:%lf\n",x,y,pow(x,y));
    printf("sin(%lf):%lf\n",x,sin(x));
    return 0;
}
第三方库

除了标准库外,C语言还有大量的第三方库可供选择,比如libcurl、OpenCV、SQLite等等,这些库可以让我们在C语言的基础上实现更加高级的功能,比如网络通讯、图像处理、数据库操作等。

libcurl库

libcurl是一个功能强大的开源网络库,它支持多种协议,比如HTTP、FTP、SMTP等等,可以让我们通过C语言实现各种网络操作。

#include <stdio.h>
#include <curl/curl.h>
int main(){
    CURL *curl;
    CURLcode res;
    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if(curl){
        curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com");
        res = curl_easy_perform(curl);
        if(res == CURLE_OK){
            printf("请求成功");
        }else{
            printf("请求失败:%s",curl_easy_strerror(res));
        }
        curl_easy_cleanup(curl);
    }
    curl_global_cleanup();
    return 0;
}
OpenCV库

OpenCV是一个开源的计算机视觉库,它提供了一系列用于图像处理和计算机视觉的函数,可以让我们通过C语言实现各种图像处理操作。

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv){
    Mat image;
    image = imread("test.jpg", IMREAD_COLOR);
    if(!image.data){
        printf("无法读取图片文件");
        return -1;
    }
    namedWindow("显示图片", WINDOW_AUTOSIZE);
    imshow("显示图片", image);
    waitKey(0);
    return 0;
}
SQLite库

SQLite是一种轻型的数据库,它支持SQL语言,并且可以在C语言中使用。我们可以通过SQLite库来实现数据库的操作。

#include <stdio.h>
#include <sqlite3.h>
int main(int argc, char* argv[]){
    sqlite3 *db;
    char *sql;
    char *errmsg;
    int ret;
    ret = sqlite3_open("test.db", &db);
    if(ret != SQLITE_OK){
        printf("打开数据库失败: %s\n",sqlite3_errmsg(db));
        return -1;
    }
    sql = "create table if not exists user(id integer primary key autoincrement, name text, age integer)";
    ret = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
    if(ret != SQLITE_OK){
        printf("操作数据库失败:%s\n",errmsg);
        sqlite3_free(errmsg);
        return -1;
    }
    printf("操作数据库成功\n");
    sqlite3_close(db);
    return 0;
}
总结

C库是C语言中必不可少的组成部分之一,其中标准库包含了大量常用函数,而第三方库则可以让我们在C语言基础上实现更高级的功能。熟练掌握C库的使用,可以让我们更加方便地编写C语言程序。