C学习:绕不开的常用标准库函数及操作

本文深入讲解C语言中位操作符的用法,包括异或和取反,以及字符串操作函数如strtok、atoi等的使用。同时,涵盖了内存管理的基础技巧,如malloc、calloc和free等,以及输入输出函数如sscanf和sprintf的实践。
摘要由CSDN通过智能技术生成

C学习:绕不开的常用标准库函数及操作

我们知道的东西是有限的,而我们不知道的东西则是无穷的。——拉普拉斯

位操作


  • ~a, 取反
  • a ^ b, 异或

运算符


  • sizeof(),获得对象的所占空间大小,单位为bytesizeof(str),得到str所占含\0的空间大小,str为字符串数组名,该功能注意与strlen() 区分,详细分析见C学习:sizeof的用法理解

字符串操作函数


头文件:#include <string.h>

  • strtok(), 字符串分割(不可重入,慎用),高频重点
  • atoi(), 字符串转int整数,类似的还有atoll()有安全问题
  • strtol(),字符串转long整数,多一个进制入参,类似的有strtollstrtoul推荐使用
  • strtof(),字符串转float浮点,类似的有strtod
  • strstr(), 字符串子串匹配
  • strcpy(), 小字符串往大字符串全量拷贝,拷完后目标字符串末尾自动追加\0
  • strncpy(), 拷贝固定长度的字符串至目标字符串,可调节两个字符串偏移位置来实现灵活拷贝,拷贝完需末尾手动添加\0
  • strlen(), 获取字符串长度,不含\0
  • strcat(),将src字符串追加到dest字符串末尾,自动识别\0
  • strncat(),字符串连接,往末尾追加n个字符

内存管理


重点掌握前4个常用的即可,内存大小单位均为Byte

  • malloc(), 从堆里申请固定大小的连续内存,不初始化
  • calloc(), 从堆里申请固定大小的连续内存,并统一初始化为0
  • free(), 释放从堆里动态申请的内存空间
  • memset(), 将某连续内存设为某固定值
  • memcpy(),将源连续内存固定长度的值拷贝至目标连续内存,不关心数据类型,末尾不会自动添加\0。

输入输出


  • sscanf(), 将字符串内容按固定格式取给对应变量;类似scanf(),从键盘取固定格式内容
  • sprintf(), 将各变量按固定个数写入目标字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
英文版:The Standard C Library 内容简介 《C标准库》集中讨论了C标准库,全面介绍了ANSI/ISOC语言标准的所有库函数。书中通过引用ISOC标准的相关部分,详细讲解了每一个库函数的使用方法,并通过示例描述了其实现细节,且给出了实现和测试这些函数的完整代码。此外,每章结尾附有不同难度的习题,帮助读者巩固和提高。通过此书,读者将会更好地使用C标准库,并学会如何设计和实现库。 《C标准库》结构清晰,内容权威,阐述精辟,对于各层次C程序员和相关专业高校师生都是一本优秀的参考书。 编辑推荐 C标准库“圣经”,提供完整源代码,全面深入阐述库函数的实现与运用。C程序员必备参考书。《C标准库》是由世界级C语言专家编写的C标准库经典著作。英文版已经重印十多次,影响了几代程序员。《C标准库》结合C标准的相关部分,精辟地讲述了每一个库函数的使用方法和实现细节,这正是一个真正的C程序员所必须掌握的。更重要的是,书中给出了实现和测试这些函数的完整源代码。可以让你更深入地学习C语言。不仅如此,《C标准库》还讨论了一些即使是最有经验的C程序员通常也不熟悉的知识,比如国际化和独立于区域设置的程序的编写、与构建库相关的概念和设计思想。 作者简介 作者:(美国)P.J.Plauger 译者:卢红星 徐明亮 霍建同 P.J.Plauger,世界著名的软件技术专家,曾任ISO C标准委员会主席,C/C++User's Journal主编,现任ISO C++标准委员会主席。他是C/C++标准库开发领域的大师。所开发的Dinkumware标准库应用广泛。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值