zoukankan      html  css  js  c++  java
  • 常用头文件及函数

    C语言编译器安装的时候还附带了很多标准函数库。当程序使用库中函数的时候,需要在程序开头声明程序调用的库。格式为:

    #include<... .h>

    常用头文件:

    stdio.h 数据输入/输出   stdlib.h 不知道该属于什么类别的常用函数

    string.h 和字符串有关的函数   math.h 各类数学函数

    time.h 极少用但会用到的和时间有关的函数

    ctype.h 字符类型和映射 

    如果让我给一个建议的话,就是在某个程序里把所有能想到的头文件都写上,以后每次用到就复制粘贴。

     

    常用的输入输出函数:

    输入:

    int getchar() 读入一个字符,读到文件尾的时候返回一个EOF。

    int putchar(int c) 输出一个字符,函数出错时返回EOF。

    char *gets(cahr *buf) 读入一行字符,读到文件尾或者出错时返回NULL,否则返回存储区buf。

    char *fgets(char *buf, int n, FILE *fp) 从指定文件中读入一行不超过n-1个字符的字符串,并将其保存在bug所指向的存储区。读到文件尾或者出错时返回NULL,否则返回存储区buf。

    puts() 输出一行字符,并将字符末尾的''替换成' '。

    由于指针没有提到过,详细描述下getchar()和gets()。

    假如在屏幕上输入:tuilixiehui。

    程序为:

    string ch;

    ch=getchar(); 那么ch的值为t。

    如果程序为:

    ch=gets(); 那么ch的值为tuilixiehui。

     

    scanf()中常用的数据类型说明符:

    %d 有符号十进制整数  %o 无符号八进制整数

    %u 无符号十进制整数  %x 无符号十六进制整数

    %f 有符号浮点数(float)     %lf 有符号浮点数(doubt)

    %s 字符串

     

    printf()中常用的数据类型说明符:

    %c 单个字符           %d 有符号十进制整数

    %o 无符号八进制整数   %u 无符号十进制整数

    %x 无符号十六进制整数 %s 字符串

    %e 有符号浮点数的科学表示法  %f 有符号浮点数的常规表示法

    %g 有符号浮点数,按照f或e格式输出

    printf()还可以规定数字的宽度,小数的位数:

    printf(“%5.2f”,a); 这表示a的长度为5个字符,保留两位小数。如果a本身数字部分加上小数点不够五个字符,会补上前导空格。

    其他常用格式标志:

    -:数据在字段宽度内左对齐,默认右对齐   

    +:在有符号的数据类型前加符号,负数加前导负号,正数加前导正号。注意要写成%+d的样子,写成+%d显然错误。

    0:数据在字段宽度内加前导0  

    #:对类型符o、x、X,加前缀0、0x、0X。对类型符e、E、f、g、G强制输出小数点。

     

    字符类型判断函数:

    在C语言编译器中,每个可输入的字符都对应一个编号(汉字和全角符号除外),称为ASCII编码。相同“类型”,比如数字,小写字母,大写字母的ASCII码是连续的。利用这一点我们可以判断一个字符所属的类型。比如一个判断字符是否属于数字的函数可以这样定义:

    bool isnumber(char a)
    {
    if (a>=’0’ && a<=’9’) return 1;
    return 0;
    }

    之前说过,字符之间进行比较的时候,比较的是二者的ASCII码。

    同理可以设计函数判断一个字符是不是大小写字母。

     

    字符串处理常用函数:

    strcat(s1,s2) 把s2连接到s1后  

    strncat(s1,s2,n) 把s2的前n个字符连接到s1后

    strcmp(s1,s2) 比较s1和s2。s1<s2结果为-1,相等为0,s1>s2结果为1.

    strncmp(s1,s2,n) 比较s1和s2的前n字符

    strcpy(s1,s2)  将s2复制到s1中,如果s1比s2长,超出的部分不变。  

    strncpy(s1,s2,n) 将s2的前n位复制到s1中  

    strchr(s,c) 在s中查找c第一次出现的位置

    strrchr(s,c) 在s中查找c最后一次出现的位置

    strstr(s1,s2) 查找s1中s1第一次出现的位置

    strrstr(s1,s2) 查找s1中s2最后一次出现的位置

    strlen(s) 返回字符串的长度,长度中不包括终止符''。

    其他常用函数(n为整型,x为浮点型):

    abs(n) 绝对值  rand() 生成伪随机数

    atof(s) 把字符串转换为double类型的数    srand(unsigned int s) 设置随机数种子

    atoi(s) 把字符串转换为int类型的数        exit() 终止程序执行

    sqrt(x) x的平方根  

    asin(x) 反正弦  sin(x)

    acos(x) cos(x)

    log(x) x的自然对数

    tan(x) log10(x) x的常用对数

    atan(x) exp(x) e^x

    atan2(x,y) fabs(double x) x的绝对值

    void *bsearch(void *key, void *base, size_t num, side_t width, int (*f)(void *e1, void *e2)); 以二分查找方式在排序数组base中查找元素key

    qsort() 以快速排序的方式对数组进行排序,具体用法见qsort()函数的使用方法那篇博文。

    各类取整函数:

    只要整数/小于某个数的最大整数:强制类型转换或floor();

    ceil():返回大于某个数的最小整数。

    四舍五入:floor(x+0.5);

    注意,floor和ceil的返回值都是double类型。

    一个简单的向上取整的方法:

    ans=floor(x-1/y)+1;

  • 相关阅读:
    HDU 1561 The more, The Better 经典树形DP
    hdu Anniversary party 树形DP,点带有值。求MAX
    hdu 3466 Proud Merchants 01背包变形
    一个简单的网站首页制作
    linux系统下who&who am i与whoami的区别,以及与select * from dba_users的区别
    linux系统下who&who am i与whoami的区别,以及与select * from dba_users的区别
    如何通过SecureCRTPortable.exe 软件远程连接某个计算机(或者虚拟机)中的某个数据库
    如何通过SecureCRTPortable.exe 软件远程连接某个计算机(或者虚拟机)中的某个数据库
    主键自增长
    主键自增长
  • 原文地址:https://www.cnblogs.com/Shymuel/p/8449695.html
Copyright © 2011-2022 走看看