【C语言】<string.h>中十大字符串函数(用法+模拟实现) 个人认为头文件中常用字符串函数一共有十大,学习完本篇文章,字符串数据处理轻松拿下。 零. 贯穿全文的前言 关于字符串最重要的知识点: C语言本身是没有字符串类型的,字符串通常放在常量字符串或者字符数组中。 一个字符串的结束标志是字符’\0’,字符’\0’的ASCII码值也是0,我们可以用此做真假判断。 双引号引起来的字符串会默认在尾部添加’\0’,没有’\0’结束的连续字符不能称为字符串。传递常量字符串实际上是传递const修饰的常量字符串首素地址。 字符串按照字典序比较大小,不能通过关系运算符>、< 等直接比较大小。
代码输出实例 一. strlen 老朋友strlen应该是我们最熟悉的字符串函数了。 strlen功能:计算字符串的长度(不包括结束标志’\0′)。 strlen函数声明: str是我们要计算的字符串首素地址。 strlen返回的字符串长度是size_t无符号型。 strlen使用实例:
代码输出实例 my_strlen 二. strcmp C语言和Java一样都不能用关系运算符直接比较字符串大小,C语言通过strcmp函数来判断。 strcmp功能:按字典序比较两个字符串大小,准确地说是按字符ASCII码值大小比较,逐个对应比较,直到比出结果。 字典序:就是abcdefg…的顺序,a是小写字母中最小的。 strcmp函数声明: str1是一个字符串首素地址,str2是另一个字符串首素地址。 字符串str1大于字符串str2 返回值大于0,小于 返回值小于0,完全相等 返回值0。 strcmp使用实例:
代码输出实例 my_strcmp 三. strcpy strcpy功能:将源字符串src(source)内容全部拷贝到目标字符串dst(destination)中,并会覆盖原来内容。 注意:目标空间必须足够大,以确保能存放源字符串。 strcpy函数声明 src被拷贝字符串首素地址,dst储存拷贝内容的字符串的首素地址。 strcpy返回值是目标字符串dst的首素地址。 strcpy使用实例:
代码输出实例 my_strcpy 四. strcat strcat功能:将源字符串src内容(包括\0)追加到目标字符串dst后。 注意:目标空间必须有足够的大,能容纳下追加的源字符串内容。 strcat函数声明: src是要追加的字符串首素地址,dst是被追加的字符串首素地址。 strcat返回值是dst的首素地址。 strcat使用实例:
代码输出实例 注意:strcat函数使用时不能追加自己,会使程序挂掉,因为追加后没有结束标志,又继续追加,陷入死循环,详情请看my_strcat模拟实现部分更好理解原因。 my_strcat 五. strncmp 接下来是长度可控的字符串函数: strncmp功能:比较两个字符串前num个素大小。 strncmp函数声明: str1是一个字符串首素地址,str2是另一个字符串首素地址。 num是需要比较的素个数。 在num个素内,str1>str2 返回值大于0,<返回值小于0,==返回值0。 strncmp使用实例:
代码输出实例 my_strncmp 和strcmp模拟实现基本一样,只是控制了循环次数 六. strncpy strncpy功能:将源字符串src的前num个素拷贝到dst中,src如果不足num个素则拷贝\0。 注意:目标空间必须足够大,以确保能存放源字符串的前num个素。 strncpy函数声明: src被拷贝字符串首素地址,dst储存拷贝内容的字符串的首素地址,。 num是要拷贝的素个数。 strncpy返回值是目标字符串dst的首素地址。 strncpy使用实例:
代码输出实例 my_strncpy 七. strncat strncat功能:从源字符串src追加前num个素到dst中,不足补充\0,并在尾部主动添加\0。 注意:目标空间必须足够大,以确保能存放源字符串追加的num个素。 strncat函数声明: src是要追加的字符串首素地址,dst是被追加的字符串首素地址。 num是要追加的素个数。 strncat返回值是dst的首素地址。 strncat使用实例:
代码输出实例 注意:strncat函数可以自己追加自己! my_strncat 八. strstr strstr功能:查找字符串str1中是否有字符串str2。 strstr函数声明: str2需要查找的字符串首地址,str1被查找的字符串首地址。 strstr返回值:如果str1中没找到str2,返回空指针。 如果str1中找到了str2,返回str1中str2字符串首素位置地址。 strstr使用实例
代码输出实例 my_strstr 九. strtok strtok是个很神奇的字符串函数。 strtok功能:根据指定字符切割字符串 strtok函数声明: lmt(delimiters分隔符)是个字符串,定义了用作分隔符的字符集合。 str是要被切割的字符串,它包含了0个或者多个由lmt字符串中一个或者多个分隔符标记。 strtok返回值: strtok函数找到str中的下一个标记,并将其用 \0 结尾,返回一个指向这个标记的指针。(注:strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容 并且可修改。)strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串 中的位置。 strtok函数的第一个参数为 NULL ,函数将在同一个字符串中被保存的位置开始,查找下一个标记。 如果字符串中不存在更多的标记,则返回 NULL 指针。 strtok使用实例:
代码输出实例 十. strerror strerror功能:返回错误码,所对应的错误信息(字符串)。 strerror函数声明: 注意:C语言内置了全局变量errno代表错误码,使用错误码需要包含头文件<errno.h> errnum是错误码。我们只需要包含头文件,传入实参errno就行了。 strerror返回值是错误码所对应的字符串地址,用来打印。 strerror使用实例: 这里输出的错误信息是没有对应文件或者目录。
代码输出实例 如果你能熟练掌握这十大字符串库函数,你的敲码速度一定会提高很快。 码字不容易,欢迎、点赞、收藏、评论、转发。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/44648.html