龙空技术网

嵌入式Linux开发《C语言专题(五:(3)字符串&内存函数总结8)》

嵌入式软硬件开发 198

前言:

此刻各位老铁们对“pythonstrspn”可能比较珍视,看官们都需要分析一些“pythonstrspn”的相关文章。那么小编也在网摘上汇集了一些对于“pythonstrspn””的相关资讯,希望同学们能喜欢,小伙伴们快快来了解一下吧!

经过一点一滴的努力,字符串&内存操作函数系列用了7篇文章已基本写完,也算是对于这段时间自己的一个交代。毕竟字符串&内存操作函数在实际的研发过程中还是很常用的。笔者曾经参与一个项目,这个项目的一部分是从某个网址抓取地理位置数据,然后根据指定的“字段”来对这些信息进行解析,最后再将这些指定“字段”的信息打包通过网络上传到服务器。其中就用到字符串&内存操作函数。关于字符串&内存函数的文章网址如下所示:

嵌入式Linux开发《C语言专题(五:(3)函数之字符串函数1)》

嵌入式Linux开发《C语言专题(五:(3)实用的字符串函数2)》

嵌入式Linux开发《C语言专题(五:(3)实用的字符串函数3)》

嵌入式Linux开发《C语言专题(五:(3)实用的内存函数4)》

嵌入式Linux开发《C语言专题(五:(3)实用的内存函数5)》

嵌入式Linux开发《C语言专题(五:(3)实用的内存函数6)》

嵌入式Linux开发《C语言专题(五:(3)实用的内存函数总结7)》

(1)字符串操作函数:

strlen、strcpy、strncpy、strcat、strncat、strcmp、strncmp、strcasecmp、strncasecmp、strchr、strrchr、strstr、strpbrk、strspn、 strcspn等

(2)内存操作函数:

memcpy、memmove、memset、 memcmp 、memchr 、memrchr 、 malloc、calloc、 free、 realloc 等,大多数以mem开头。

在标准C中,以mem开头这些内存操作函数被认为是字符串函数的一部分,从头文件是string.h中可以看出。

看完这些函数名后是不是觉得有些函数很类似,比如

strcpy、strncpy与memcpy、memmove

strcmp、strncmp、strcasecmp、strncasecmp与 memcmp

strchr、strrchr与memchr 、memrchr

其实再通过观察它们的参数 char *strcpy(char *dest, const char *src);与 void *memcpy(void *dest, const void *src, size_t n);,你会发现字符串操作函数的参数几乎都是char *,而内存操作函数大多数是void *(万能类型匹配符)。

也就是说字符串函数只能处理字符串,而内存操作函数直接对内存操作,不仅可以处理字符串,还可以处理数组、结构等任何类型。这一点区别非常重要。比如我们最常见的是定义一个数组int a[20],然后用memset(a,0,sizeof(a))函数对数组进行初始化。

动态内存申请函数malloc&free&calloc&realloc一定要记得使用方式,一定不要出现申请的内存没有释放,也不要出现野指针等错误。当然在学习的过程中,可以“故意”出现这些错误,是更好的理解这些函数的使用;但是在研发中可不要这样,一不小心可能会被同事笑话。这些错误原因我已在文章中详细介绍过。曾经公司中的一个同事在处理音频代码时,用malloc申请内存空间,因为一直没有释放,导致在运行一段时间后,系统真的崩溃了。所以,提醒自己,一定要用好这些函数。

这些文章中的代码都是经过笔者亲自上机验证的,希望读者看完文章后多敲敲代码,反复测试验证,通过分析执行结果来反过来理解代码,从而使自己的能力真正得到提升。

后续继续C语言其它内容...

更多精彩内容可以关注此头条号:嵌入式软硬件开发 喜欢的话大家可以“评论”,“转发”、“点赞”或者“收藏”,感谢大家。相互交流,共同成长。

标签: #pythonstrspn