C语言常用函数笔记
- strcmp 比较字符串;
- sscanf 读取格式化的字符串中的数据;
- memset 初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;
- snprintf 按照format的格式格式化为字符串,然后再将其拷贝至str中。最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n 的话,将不会溢出。函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。sprintf不能检查目标字符串的长度,可能造成众多安全问题,所以都会推荐使用snprintf;
- strlen 用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符);
- sizeof 是一个单目运算符,而不是一个函数。与函数 strlen 不同,它的参数可以是数组、指针、类型、对象、函数等。对 sizeof 而言,因为缓冲区已经用已知字符串进行了初始化,其长度是固定的,所以 sizeof 在编译时计算缓冲区的长度。也正是由于在编译时计算,因此 sizeof 不能用来返回动态分配的内存空间的大小;
- malloc 分配所需的内存空间,并返回一个指向它的指针;
- vsnprintf 属于可变参数。用于向字符串中打印数据、数据格式用户自定义。
- memcpy:内存拷贝函数,从存储区 A 复制 n 个字节到存储区 B,返回一个指向目标存储区B的指针。
- strlen(char*):函数求是字符串的实际长度,它可以用来获取动态实际字符数组的长度,是从开始到遇到第一个“\0”,如果只是定义没有赋予初始值,这个结果是不确定的,它会从数组的首地址开始一直找下去,直到遇到“\0”停止查找。
- sizeof():求所占总空间的字节数,静态的,跟初始状态字符数组的大小有关系,大小等于初始时字符数组的大小或者等于初始时字符数组的大小+1。在C++中,如果定义的是字符串数组的话,那么如果想获取数组的长度,只能用sizeof(数组名),而不能用strlen(str)。
- bzero:置字节字符串s的前n个字节为零。
- calloc()分配所需的内存空间,并返回一个指向它的指针。malloc 和 calloc 之间的不同点是,malloc 不会设置内存为零,而 calloc 会设置分配的内存为零。