1、strtok函数的使用
char *strtok(char *str,const char *sep)
sep参数指向一个字符串,定义了用作分隔符的字符集合
第一个参数指定一个字符串,定义了用作分隔符的字符集合
第一个参数指定一个字符串,他包含了0或者多个由sep字符串中一个或者多个分隔符分割的标记
strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指向这个标记的指针(strtok函数会改变被操作的字符串,所以在使用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;
}
2、strerror函数的使用
char *strerror(int errnum);
str函数可以把函数参数部分错误码对应的错误信息的字符串地址返回来
使用这个函数,需要使用errno.h这个头文件,下面是使用这个函数来得到错误信息的代码
#include<errno.h>
#include<string.h>
#include<stdio.h>
int main() {
int i = 0;
for (i = 0; i <= 10; i++) {
printf("%s\n", strerror(i));
}
return 0;
}
No error
Operation not permitted
No such file or directory
No such process
Interrupted function call
Input/output error
No such device or address
Arg list too long
Exec format error
Bad file descriptor
No child processes
这个函数和perror函数有一定的相似之处,perror函数相当于一次将上述代码的第九行完成了,直接将错误信息打印出来。perror函数打印完参数部分的字符串后,再打印一个冒号和一个空格,再打印错误信息
#include<stdio.h>
#include<string.h>
#include<errno.h>
int main() {
FILE* pFile;
pFile = fopen("unexist.ent", "r");
if (pFile == NULL) {
perror("Error opening file unexist.ent");
}
return 0;
}
最终输出结果是:"Error opening file unexist.ent:No such file or directory