给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行!!! 铁铁们,成功的路上必然是孤独且艰难的,但是我们不可以放弃,远山就在前方,但我们能力仍然不足,所有我们更要奋进前行!!! 今天我们更新了strtok和strerror函数使用的内容, 🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝
char * strtok ( char * str, const char * sep); char * strtok ( char * str, const char * sep);
我们先来看一下strtok函数的形式,是char*类型的,下面我们来介绍一下他的作用:
• sep参数指向⼀个字符串,定义了⽤作分隔符的字符集合
• 第⼀个参数指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标
记。
• strtok函数找到str中的下⼀个标记,并将其⽤ \0 结尾,返回⼀个指向这个标记的指针。(注:
strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容
并且可修改。)
• strtok函数的第⼀个参数不为 比特就业课主页:https://m.cctalk.com/inst/s9yewhfr
NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串
中的位置。
• strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标
记。
• 如果字符串中不存在更多的标记,则返回 NULL 指针
只看这些这些概念还是显得有些抽象,下面我们来举一些例子来说明他的作用:
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = "192.168.6.111";
char* sep = ".";
char* str = NULL;
for (str = strtok(arr, sep); str != NULL; str = strtok(NULL, sep))
{
printf("%s\n", str);
}
return 0;
}
我们来看一下这串代码,这串代码的作用是将给定的192.168.6.111以.为分割线分别打印字符串,看这串代码之前,我们先来看一下strtok函数,其实他的作用呢
就是传过去一串代码,传过去一个sep参数,sep参数的就是指一个用于分割的东西,在这串代码中就是指的那个.,然后我们再来看这串代码,思路就是我们先创建了一个字符串,然后创建sep标记,然后用一个for循环,for循环中,第一个是str,str就是一次分割之后传回来的字符串,然后我们打印他,然后str只要不等于NULL(空指针),这个循环就会继续,然后str再次进行strtok分割,最后分割完成。
接下来就会打印出我们想要的效果;
char* strerror( int errnum );
我们先来看一下这个字符串函数的作用:
strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来。
在不同的系统和C语⾔标准库的实现中都规定了⼀些错误码,⼀般是放在 errno.h 这个头⽂件中说明
的,C语⾔程序启动的时候就会使⽤⼀个全⾯的变量errno来记录程序的当前错误码,只不过程序启动
的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会讲对应
的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是
有对应的错误信息的。strerror函数就可以将错误对应的错误信息字符串的地址返回。
下面我们来看一串代码:
int main()
{
for (int i = 0; i <= 10; i++)
{
printf("%d: %s\n", i, strerror(i));
}
return 0;
}
这串代码的作用是用来打印0-10的错误码,下面我们运行一下试试:
我们便可以得到这些数的错误信息。
当我们了解到之后,我来教大家如何去验证它:
但这里会涉及一些我们后面才会学到的知识。
#include<errno.h>
int main()
{
FILE*pf = fopen("test.txt", "r");
//fopen以读的形式打开文件时,如果文件不存在,就会打开失败
if (pf == NULL)
{
printf("%s\n", strerror(errno));
return 1;
}
fclose(pf);
return 0;
}
看这串代码,我们打算打开一个文件test.txt,但是我们的文件夹里边没有这个文件,所以肯定会打开失败,那么失败的=时使用strerroer便会得到打开失败的原因:
便会这样,没有这个文件。
#include<errno.h>
int main()
{
FILE*pf = fopen("test.txt", "r");//这里是打开文件并且读文件的意思
//fopen以读的形式打开文件时,如果文件不存在,就会打开失败
if (pf == NULL)
{
perror("the cause of faliure: ");
return 1;
}
fclose(pf);//关闭文件。
return 0;
}
在看这个代码,我们使用perror,这个也可以显示错误信息,并且加上一个自己输入的字符串
就像这样。perror就像但与printf加上一个error。
总的来说,strtok函数和strerror函数都是在C语言中常用的字符串处理函数。strtok函数用于字符串的分割,而strerror函数用于获取错误信息字符串。使用这两个函数可以方便地进行字符串处理和错误处理,提高程序的可读性和可靠性。