• 【C/C++】之C语言库函数


      这个帖子记录一下 C语言 中经常用到的函数库中的函数及其用法。

    1、<math.h>

      math.h是进行数学操作的函数库。使用这个函数库,需要先导入包: #include <math.h> 。math包中的函数如下:

    函数定义函数功能函数说明
    int abs(int x) 求整数x的绝对值  
    double fabs(double x) 求实数x的绝对值 小数部分不会被忽略
    double exp(double x) 求e的x次方的值  
    double floor(double x) 将实数x向下取整  
    double ceil(double x) 将实数x向上取整  
    double log(double x) 求以e为底x的对数的值  
    double log10(double x) 求以10为底x的对数的值  
    double pow(double x, double y) 求x的y次方的值  
    double sqrt(double x) 将x开平方  
    double sin(double x) 求弧度x的正弦值 x是弧度值
    double cos(double x) 求弧度x的余弦值 x是弧度制
    double tan(double x) 求弧度x的正切值 x是弧度制

      以下是利用上面的函数编写的代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main() {
        printf("-20的绝对值是:%d
    ", abs(-20));
        printf("-20.5的绝对值是:%f
    ", fabs(-20.5));
        printf("e的二次方的值是:%f
    ", exp(2));
        printf("20.9向下取整是:%f
    ", floor(20.9));
        printf("20.1向上取整是:%f
    ", ceil(20.1));
        printf("以e为底100的对数是:%f
    ", log(100));
        printf("以10为底100的对数是:%f
    ", log10(100));
        printf("2的3次方的值是:%f
    ", pow(2, 3));
        printf("9开平方的值是:%f
    ", sqrt(9));
        return 0;
    }

      运行结果如下:

    -20的绝对值是:20
    -20.5的绝对值是:20.500000
    e的二次方的值是:7.389056
    20.9向下取整是:20.000000
    20.1向上取整是:21.000000
    以e为底100的对数是:4.605170
    以10为底100的对数是:2.000000
    2的3次方的值是:8.000000
    9开平方的值是:3.000000
    
    Process returned 0 (0x0)   execution time : 1.966 s
    Press any key to continue.

    2、<ctype.h>

      ctype.h是进行字符操作的函数库。使用这个函数库需要先导入包: #include <ctype.h> 。ctype包中的函数如下:

    函数定义函数功能函数说明
    int isalnum(int ch) 判断字符是不是字母或数字 参数可以是ASCII码,也可以是一个字符
    int isalpha(int ch) 判断字符是不是字母 参数可以是ASCII码,也可以是一个字符
    int isdigit(int ch) 判断字符是不是数字 参数可以是ASCII码,也可以是一个字符
    int islower(int ch) 判断字符是不是小写字母 参数可以是ASCII码,也可以是一个字符
    int isupper(int ch) 判断字符是不是大写字母 参数可以是ASCII码,也可以是一个字符
    int ispunct(int ch) 判断字符是不是除空格、字母、数字之外的可打印字符 参数可以是ASCII码,也可以是一个字符
    int isspace(int ch) 判断字符是不是空格、制表或换行符 参数可以是ASCII码,也可以是一个字符
    int tolower(int ch) 将大写字母转换成小写字母 参数可以是ASCII码,也可以是一个字符
    int toupper(int ch) 将小写字母转换成大写字母 参数可以是ASCII码,也可以是一个字符

      以下是利用上面的函数编写的代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    
    int main() {
        printf("m是不是数字或字母?%s
    ", isalnum('m') ? "" : "");
        printf("m是不是字母?%s
    ", isalpha('m') ? "" : "");
        printf("m是不是数字?%s
    ", isdigit('m') ? "" : "");
        printf("m是不是小写字母?%s
    ", islower('m') ? "" : "");
        printf("m是不是大写字母?%s
    ", isupper('m') ? "" : "");
        printf("%是不是除空格、字母、数字之外的可打印字符?%s
    ", ispunct('%') ? "" : "");
        printf("\n是不是空格、制表符或换行符?%s
    ", isspace('
    ') ? "" : "");
        printf("将m转为大写字母:%c
    ", toupper('m'));
        printf("将M转为小写字母:%c
    ", tolower('M'));
        return 0;
    }

      运行结果如下:

    m是不是数字或字母?是
    m是不是字母?是
    m是不是数字?否
    m是不是小写字母?是
    m是不是大写字母?否
    是不是除空格、字母、数字之外的可打印字符?是
    
    是不是空格、制表符或换行符?是
    将m转为大写字母:M
    将M转为小写字母:m
    
    Process returned 0 (0x0)   execution time : 1.732 s
    Press any key to continue.

    3、<string.h>

      string.h是进行字符串操作的函数库。使用这个函数库需要导入包: #include <string.h> 。string包中的函数如下:

    函数定义函数功能函数说明
    char* strcat(char* s1, char* s2) 将字符串s2拼接到字符串s1后面 字符串s1的长度必须足够
    char* strcpy(char* s1, char* s2) 将字符串s2复制给字符串s1  
    int strcmp(char* s1, char* s2) 字符串s1和s2进行比较 逐个字母比较,字母大的大;如果前面的字母都相同,则长的字符串大
    unsigned strlen(char* s) 获取字符串s的长度  
    char* strstr(char* s1, char* s2) 获取s1中s2第一次出现的地方后面的内容 包括s2

      以下是利用上面的函数编写的代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main() {
        char s1[80] = "I am string 1.";
        char* s2 = "I am not string 2.";
        printf("字符串1的值是:%s
    ", s1);
        printf("字符串2的值是:%s
    ", s2);
        printf("将s2拼接到s1后面得到:%s
    ", strcat(s1, s2));
        printf("s1和s2比较:%s
    ", strcmp(s1, s2) ? "s1大" : "s2大");
        printf("将s2复制给s1:%s
    ", strcpy(s1, s2));
        printf("字符串s1的长度:%d
    ", strlen(s1));
        printf("s1中not及之后的内容:%s
    ", strstr(s1, "not"));
        return 0;
    }

      运行结果如下:

    字符串1的值是:I am string 1.
    字符串2的值是:I am not string 2.
    将s2拼接到s1后面得到:I am string 1.I am not string 2.
    s1和s2比较:s1大
    将s2复制给s1:I am not string 2.
    字符串s1的长度:18
    s1中not及之后的内容:not string 2.
    
    Process returned 0 (0x0)   execution time : 1.747 s
    Press any key to continue.
  • 相关阅读:
    c语言中sscanf()与sprintf()的使用
    oracle 12c 创建能用navicat 远程登录的帐号
    ubuntu14.0安装 oracle instant client(oracle 12c)
    【转】Xilinx FPGA ChipScope的ICON/ILA/VIO核使用
    ChipScope——ISE软件的抓波形操作
    【转】彻底掌握Quartus——基础篇
    千兆以太网(4):发送——ODDR原语和Wireshark抓包工具
    千兆以太网(3):发送——组建以太网心跳包
    千兆以太网(2):接收——包校验和数据筛选
    千兆以太网(1):接收——RGMII协议和IDDR原语
  • 原文地址:https://www.cnblogs.com/itgungnir/p/6677798.html
Copyright © 2020-2023  润新知