• C/C++函数


    系统调用函数 - system

    功能:在已经运行的程序中执行另外一个外部程序
    参数:外部可执行程序名字
    返回值:
            成功:不同系统返回值不一样
            失败:通常是-1

    sizeof关键字

    sizeof 不是函数,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位为字节
    sizeof 的返回值为 size_t
    size_t 类型在 32 位操作系统下是 unsigned int,是一个无符号的整数
    输出和输入
    输出字符的两种方式:
            1. printf(“%c”,变量)
            2. putchar(字符)
    输入字符的两种方式:
            1. scanf(“%c”,&b 变量)
            2. getchar(字符) 

    time 

     
    功能:获取当前系统时间
    参数:常设置为 NULL
    返回值:当前系统时间,time_t 相当于 long 类型,单位为毫秒

    srand

     
    功能:用来设置 rand()产生随机数时的随机种子
    参数:如果每次 seed 相等,rand()产生随机数相等
    返回值:无

    rand

     
    功能:返回一个随机数值
    参数:无
    返回值:随机数
    要获得固定范围的数就 % 一个数值 
    例:rand() %100就是 0-99 的随机数,rand() % 11+50 就是 50-60 的随机数

    示例:

    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
     
    int main()
    {
        time_t tm = time(NULL);//得到系统时间
        srand((unsigned int)tm);//随机种子只需要设置一次即可
        
        int r = rand();
        printf("r = %d
    ", r);
        return 0;
    }
    获取随机数

    字符串处理函数

    1. gets()

    功能:从标准设备上获取一个字符串,这个字符串可以带空格,直接接收到换行字符或者字符串结束标志才停止。 不安全
    参数:
            s:字符指针
    返回值:
    • 成功:读入的字符串
    • 失败:NULL
     
    gets(str)与scanf("%s",str)的区别:
    • gets(str)允许输入的字符串含有空格
    • scanf("%s",str)不允许含有空格

    注意:由于 scanf() 和 gets() 无法知道字符串s大小,必须遇到换行符或读到文件结尾为止才接收输入,因此容易导致字符数组越界(缓冲区溢出)的情况。

    示例:

    2. puts()

    功能:从标准设备上输出一个字符串,在输出完成后自动输出一个' ' 换行。

    参数:

      s:字符指针

    返回值:

    • 成功:非负数
    • 失败:-1

    示例:

      

    3. fget()

    功能:接收固定大小的字符串,stream指定的文件内读入字符,保存到s所指定的内存空间,直到出现换行字符、读到文件结尾或是已读了size - 1个字符为止,最后会自动加上字符 '' 作为字符串结束。安全

    参数

    • s:字符指针
    • size:指定最大读取字符串的长度(size - 1)
    • stream:流,如果读键盘输入的字符串,固定写为stdin

    返回值

    • 成功:成功读取的字符串
    • 读到文件尾或出错: NULL

    注意:

    1. 如果接收少于大小,会将 加入到字符串中
    2. 如果接收大于等于大小,不会将 加入到字符串中,始终会将 加入到字符串中

    fgets() 在读取一个用户通过键盘输入的字符串的时候,同时把用户输入的回车也做为字符串的一部分。通过 scanf 和 gets 输入一个字符串的时候,不包含结尾的“ ”,但通过 fgets 结尾多了“ ”fgets()函数是安全的,不存在缓冲区溢出的问题。

     示例:

    4. fputs()

    功能:str所指定的字符串写入到stream指定的文件中 字符串结束符 ''  不写入文件。

    参数:

    • s:字符指针
    • stream:流如果字符串输出到屏幕,固定写为stdout

    返回值:

    • 成功:0
    • 失败:-1

    fputs()是puts()的文件操作版本,但 fputs() 不会自动输出一个' '

    示例:

    5. strlen() - 计算字符串长度

    功能:计算目标字符串的长度,不包含字符串结束符‘’

    参数s:字符指针

    返回值字符串s的长度,size_t 为 unsigned int 类型

    示例:

    6. strcpy() - 拷贝

    功能:把src所指向的字符串复制到dest所指向的空间中,''也会拷贝过去

    参数

    • dest:目标字符串
    • src:源字符串

    返回值

    • 成功:返回目标字符串的首地址
    • 失败:NULL

    注意如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误情况。

    示例:

    7. strncpy() - 有限拷贝

    功能:把src指向字符串的前n个字符复制到dest所指向的空间中,是否拷贝结束符看指定的长度是否包含''

    参数

    • dest:目标字符串首地址
    • src:源字符串首地址
    • n:指定需要拷贝字符串长度

    返回值

    • 成功:返回dest字符串的首地址
    • 失败:NULL

    注意:有限拷贝不会将 拷贝到目标字符串中

    示例:

    8. strcat() - 追加

    功能:将src字符串连接到dest的尾部,‘’也会追加过去

    参数

    • dest:目的字符串首地址
    • src:源字符首地址

    返回值

    • 成功:返回dest字符串的首地址
    • 失败:NULL

    示例:

    9. strncat() - 有限追加

    功能:将src字符串前n个字符连接到dest的尾部,‘’也会追加过去

    参数

    • dest:目的字符串首地址
    • src:源字符首地址
    • n:指定需要追加字符串个数

    返回值

    • 成功:返回dest字符串的首地址
    • 失败:NULL

    示例:

    10. strcmp() - 比较

    功能:比较 s1  s2 的大小比较的是字符ASCII码大小。比较 之前的所有有效字符

    参数

    • s1:字符串1首地址
    • s2:字符串2首地址

    返回值

    • 相等:0
    • 大于:>0,在不同操作系统中 strcmp 结果会不同,有的返回ASCII 码差值
    • 小于:<0

    示例:

    11. strncmp() - 有限比较

    功能:比较 s1  s2 n个字符的大小比较的是字符ASCII码大小

    参数

    • s1:字符串1首地址
    • s2:字符串2首地址
    • n:指定比较字符串的数量

    返回值

    • 相等:0
    • 大于:> 0
    • 小于:< 0

    示例:

    12. printf()

    功能:格式化输出,直到出现字符串结束符 ''  为止。

    参数:

    • str:字符指针
    • format:字符串格式

    返回值:

    • 成功:实际格式化的字符个数
    • 失败: - 1

    示例:

    13. scanf()

    功能:从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据。

    参数:

    • str:指定的字符串首地址
    • format:字符串格式

    返回值:

    • 成功:参数数目,成功转换的值的个数
    • 失败: - 1

    示例:

    14. sprintf() - 字符串格式化

    功能:根据参数format字符串来转换并格式化数据,然后将结果输出到str指定的空间中,直到出现字符串结束符 ''  为止。

    参数

    • str:字符指针
    • format:字符串格式,用法和printf()一样

    返回值

    • 成功:实际格式化的字符个数
    • 失败: - 1

    示例:

    15. sscanf()

    功能:从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据。

    参数

    • str:指定的字符串首地址
    • format:字符串格式,用法和scanf()一样

    返回值

    • 成功:参数数目,成功转换的值的个数
    • 失败: - 1

     示例:

    16. strchr()

    功能:在字符串s中查找字母c出现的位置

    参数

    • s:字符串首地址
    • c:匹配字母(字符)

    返回值

    • 成功:返回第一次出现的c地址
    • 失败:NULL

    示例:

    17. strstr()

    功能:在字符串haystack中查找字符串needle出现的位置

    参数

    • haystack:源字符串首地址
    • needle:匹配字符串首地址

    返回值

    • 成功:返回第一次出现的needle地址
    • 失败:NULL

    示例:

    18. strtok() - 字符串切割

    功能:来将字符串分割成一个个片段。当strtok()在参数s的字符串中发现参数delim中包含的分割字符时, 则会将该字符改为 字符,当连续出现多个时只替换第一个为。

    参数

    • str:指向欲分割的字符串
    • delim:为分割字符串中包含的所有字符

    返回值

    • 成功:分割后字符串首地址
    • 失败:NULL

      在第一次调用时:strtok() 必需给予参数s字符串

      往后的调用则将参数s设置成NULL,每次调用成功则返回指向被分割出片段的指针

    示例:

    19. atoi() - 字符串转换

    功能atoi()会扫描nptr字符串,跳过前面的空格字符,直到遇到数字或正负号才开始做转换,而遇到非数字或字符串结束符('')才结束转换,并将结果返回返回值。

    参数nptr:待转换的字符串

    返回值:成功转换后整数

    类似的函数有:

    • atof():把一个小数形式的字符串转化为一个浮点数。
    • atol():将一个字符串转化为long类型

    示例:

    内存操作函数

    1、memset

    功能:将s的内存区域的前n个字节以参数c填入

    参数

    • s:需要操作内存s的首地址
    • c:填充的字符,c虽然参数为int,但必须是unsigned char , 范围为0~255
    • n:指定需要设置的大小

    返回值s的首地址

    示例:

    2、memcpy

    功能:拷贝src所指的内存内容的前n个字节到dest所值的内存地址上。

    参数

    • dest:目的内存首地址
    • src:源内存首地址,注意:dest和src所指的内存空间不可重叠
    • n:需要拷贝的字节数

    返回值dest的首地址

    示例:

    strcpy 与 memcpy 的区别:

    1. 函数参数不同
    2. strcpy 只能拷贝字符串,memcpy 可以拷贝一块内存
    3. 拷贝结束标志不同。strcpy 是以''为结尾,memcpy 是以 n 的个数为结尾。这两个都是不安全的

    3、memmove

    功能:拷贝src所指的内存内容的前n个字节到dest所值的内存地址上。

    参数:

    • dest:目的内存首地址
    • src:源内存首地址,注意:dest和src所指的内存空间不可重叠
    • n:需要拷贝的字节数

    返回值:dest的首地址

    memmove()功能用法和memcpy()一样,区别在于:dest和src所指的内存空间重叠时,memmove()仍然能处理,不过执行效率比memcpy()低些。

    memmove()拷贝重叠内存地址不会出现问题,但是效率比较低。如果拷贝源和拷贝目标没有重叠,两个函数效率一样

    4、memcmp

    功能:比较s1和s2所指向内存区域的前n个字节

    参数

    • s1:内存首地址1
    • s2:内存首地址2
    • n:需比较的前n个字节

    返回值

    • 相等:=0
    • 大于:>0
    • 小于:<0

    示例:

    堆区内存分配和释放

    malloc

    功能:在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。分配的内存空间内容不确定,一般使用memset初始化。

    参数

    • size:需要分配内存大小(单位:字节)

    返回值

    • 成功:分配空间的起始地址
    • 失败:NULL

    示例:

    free

    功能:释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,指向被释放区域的首地址。对同一内存空间多次释放会出错。

    参数

    • ptr:需要释放空间的首地址,被释放区应是由malloc函数所分配的区域。

    返回值:无

  • 相关阅读:
    VBA Exit Do语句
    VBA Exit For语句
    VBA Do...While循环
    VBA While Wend循环
    VBA For Each循环
    VBA for循环
    sqoop 教案
    Hbase 取数据 和放数据 使用mr
    Hbase 四种过滤器
    Hbase java API 的方法
  • 原文地址:https://www.cnblogs.com/zhaye/p/11169842.html
Copyright © 2020-2023  润新知