【c语言12】字符串函数(strlen,strcmp,strcpy,strcat,strstr,strtok,strerror)

news/2024/11/7 16:55:53/

请添加图片描述

文章目录

  • 一、字符串函数
    • 1.1strlen(求字符串长度)
    • 1.2strcmp(比较字符串)
    • 1.3strcpy(拷贝字符串)
    • 1.4strcat(追加字符串)
    • 1.5strstr(判断子串)
    • 1.6sttok(字符串分割 )
    • 1.7strerror(返回错误码)
  • 总结

库函数(Library function)是把函数放到库里,供别人使用的一种方式。.方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。
一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数。
今天我要介绍的是字符串函数。

一、字符串函数

1.1strlen(求字符串长度)

strlen函数通常用于计算字符串长度,需要注意的是,如果初始化的字符串中没有’\0’存在,那么他计算的长度是随机值。
代码详情:

int main()
{char arr[] = "hello world";//strlen函数的参数是字符串的首地址,//同时计算的长度需要保存在整型变量中;int len = strlen(arr);printf("%d", len);return 0;
}

运行结果
在这里插入图片描述

1.2strcmp(比较字符串)

strcmp函数通常用于比较字符串,且比较的是字符的ASCII码值。该字符串的参数是
strcmp(str1 – 要进行比较的第一个字符串,str2 – 要进行比较的第二个字符串。)
该函数返回值如下:
如果返回值小于 0,则表示 str1 小于 str2。
如果返回值大于 0,则表示 str1 大于 str2。
如果返回值等于 0,则表示 str1 等于 str2。
strcmp比较的过程为:当首地址指向的
代码详解

int main()
{char arr[] = "hello world";char bit[] = "hello bit";int size = strcmp(arr, bit);//strlen的详细参数if (size < 0)//判断{printf("arr<bit\n");}else if(size == 0){printf("arr=bit\n");}else{printf("arr>bit\n");}return 0;
}

比较结果
在这里插入图片描述
因为arr的第七个字符’w’的ASCII码值大于bit的‘b";
所以arr>bit;

1.3strcpy(拷贝字符串)

strcpy函数通常用于把一个字符串拷贝到另一个字符串中,注意被拷贝的字符串的空间必须足够大,否则会出现数值溢出的报错。
代码详解

int main()
{char arr[20];char *p = "hello csdn";strcpy(arr, p);//使用指针拷贝char str[] = "hello world";char arr2[20];strcpy(arr2, str);//使用字符串首地址拷贝printf("%s\n", arr);printf("%s\n", arr2);return 0;
}

我们注意到,使用指针一样是可以拷贝字符串的,这是因为,strcmp需要的函数只需要是指向字符串首字符的指针即可
运行结果

在这里插入图片描述

1.4strcat(追加字符串)

strcat函数的作用是追加字符串,该函数的作用与strcpy函数类似,但不相同,作者目前学习的程度也无法详细的解读出来。等学习到位,一定补上
代码详解

int main()
{char Moon[100] = "今夜月色真美";char wind[] = " 风也温柔";strcat(Moon, wind);//把wind字符串中的内容追加到Moon的词尾后printf("%s", Moon);return 0;
}

运行结果
在这里插入图片描述

1.5strstr(判断子串)

strstr函数的作用是判断字符串中是否含有另一个字符串的内容。当找到时,返回主串中存在子串的位置,如果不存在,返回NULL。文字描述可能有些绕口,我们还是尽量用代码来解释
代码详解

int main()
{char arr[] = "hello world i live you";char str[] = "world";char *ret = strstr(arr, str);//ret接受的是arr中str字符串的起始位置printf("%s", ret);return 0;
}

运行结果
在这里插入图片描述
同时,我们可以利用他返回的特性,判断主串中是否存在子串
例如
在这里插入图片描述
c语言真是一个奇妙的语言啊,越学越能感受到先辈们的智慧

1.6sttok(字符串分割 )

strtok函数的作用是:首先定义一个字符集合体,该集合体包含了你想分割字符。依然代码说话
代码详解

int main()
{char mailbox[] = "Nancat@bi,sheng.com";//主串char arr[] = "@,.";//需要分割的符号集合体char* ret = NULL;for (ret = strtok(mailbox, arr); ret != NULL; ret = strtok(NULL, arr)){printf("%s\n", ret);}return 0;
}

运行结果
在这里插入图片描述
成功分割了主串

1.7strerror(返回错误码)

strerror函数通常判断错误。是比较常用的一个库函数,它可以清晰的告诉你是什么原因造成的错误,非常~
好用;
代码详解

int main()
{FILE* p = fopen("red.exe", "r");if (p == NULL){printf("%s", strerror(errno));}return 0;
}

运行结果
在这里插入图片描述

总结

c语言学无止境,我只是学习道路上微不足道的过路人,如果有大佬看到了我的这篇博客,希望多多指导,感谢所有看完博客以及为我指出缺点的人。


http://www.ppmy.cn/news/571918.html

相关文章

Docker的run流程

底层原理 Docker怎么工作&#xff1f; Docker为什么比VM虚拟机块&#xff1f; 1.Docker有比虚拟机更少的抽象层 2.docker利用的是宿主机的内核&#xff0c;vm需要是Guest OS 所以说&#xff0c;新建一个容器的时候&#xff0c;docker不需要像虚拟机一样加载一个系统内核&am…

现在程序员行情已经好转了吗?华为都不刷人了!靠1658页Java面试合集成功逆袭上岸!

来自学员的真实反馈&#xff01; 双非本&#xff0c;笔试刚过线&#xff0c;面试回答的磕磕绊绊&#xff0c;手撕还没写出来&#xff0c;本以为就这样寄几了&#xff0c;没想到5分钟后官网绿了&#xff01; 22年底&#xff0c;各大培训机构&#xff0c;各种大V认证都在说疫情过…

Light Image Resizer v6.0.8 图像无损批量处理工具便携版

前言 Light Image Resizer是一款由法兰西 ObviousIdea公司开发的一款图片尺寸批量处理工具&#xff0c;它简单易用、功能强大&#xff0c;支持给图片添加个性化水印或边框&#xff0c;默认内置了多种不同的剪切模式&#xff0c;使图像适合某一分辨率比例时不会变形。然而用户在…

2023年低代码平台全球排行榜:企业首选榜单,揭晓最受欢迎的工具

近年来&#xff0c;随着数字化转型和云计算技术的普及&#xff0c;低代码平台已经成为企业开发和应用程序的首选工具之一。低代码平台可以大大缩短开发时间和成本&#xff0c;提高灵活性和可扩展性&#xff0c;同时保证应用程序的质量和稳定性。在这个强制数字化的时代&#xf…

【C++】标准库 — 正则表达式 std::regex

C 标准库 — 正则表达式 std::regex 文章目录 C 标准库 — 正则表达式 std::regexI - 正则表达式概述II - 内容2.1 - 匹配字符2.2 - 匹配数量/次数2.3 - 特殊字符的用途 III - 使用3.1 - 正则表达式有不止一种写法3.2 - 内置通用字符簇特殊用法3.3 - 元字符使用3.4 - 零宽断言3…

百度输入法输入汉字却显示英文

项目场景&#xff1a; 我的电脑上就一个百度输入法和一个系统自带的。 问题描述&#xff1a; 听说百度输入法广告比较少&#xff0c;才下载的。 写Word时候&#xff0c;无论怎么切换英文汉字&#xff0c;始终显示的是英文。 解决方案&#xff1a; 提示&#xff1a;也没有存在…

android百度输入法切换,百度输入法输入模式怎么切换 快速一键切换输入法模式方法教程...

有很多的用户在使用手机输入法时&#xff0c;都会有习惯切换不同模式的习惯&#xff0c;这样才会更加便捷的输入&#xff0c;那么在手机百度输入法中要怎么快速的切换模式呢?下面就跟随小编一起来看看吧。 百度输入法切换模式的方法 1、首先&#xff0c;下载并且安装手机百度输…

输入法pad版android,百度输入法pad版 for android 3.0

在手机或者pad上&#xff0c;我喜欢九宫格类型的输入法。有年轻人手指灵活&#xff0c;脑子 也灵活&#xff0c;选用五笔字型&#xff0c;这不在话题之内。 手机从模拟式过渡到数字式后&#xff0c;中文输入就一直流行九宫格类输入法。利用数字键&#xff0c;经过特别的编码&am…