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

您所在的位置:网站首页 字符串长度函数是什么 【c语言12】字符串函数(strlen,strcmp,strcpy,strcat,strstr,strtok,strerror)

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

2023-06-29 20:23| 来源: 网络整理| 查看: 265

请添加图片描述

文章目录 一、字符串函数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 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语言学无止境,我只是学习道路上微不足道的过路人,如果有大佬看到了我的这篇博客,希望多多指导,感谢所有看完博客以及为我指出缺点的人。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3