特殊字符串函数
strtok(字符串切割函数)
重点:1.delimiters 参数是个字符串,定义了用作分割符的字符集合
2.第一个参数指定一个字符串,里面包含0个或者多个分隔符
3.strtok函数找到str中的分隔符,会把它改成'\0',然后返回指向这个分隔符前面字符串的指针
4.strtok函数会改变被操作的字符串,所有使用strtok函数切分的字符串一般是临时拷贝的内容并且可修改。
5.strtok函数的第一个参数不是NULL,函数将找到str中的第一个切割的字符串,函数将保存它在字符串中的位置。
6.strtok函数的第一个参数是NULL,函数将在同一个字符串中被保存的位置开始,查找下一个要切割的字符串。
7.如果字符串中找不到切割符切割的字符串了,就返回NULL指针。
使用:
#include<stdio.h>
#include<string.h>
int main()
{
char* p = "12345@bit@byte.34555@qq.com";
const char* sep = ".@";
char arr[30];
char* str = NULL;
strcpy(arr, p);
for (str = strtok(arr, sep); str != NULL; str = strtok(NULL, sep))
{
printf("%s\n", str);
}
}
strerror(返回错误码,所对应的错误信息)
使用:
#include<stdio.h>
#include<string.h>//这个包含strerror函数
#include<errno.h>//必须包含的头文件 因为errno
int main()
{
FILE* pf = fopen("data.txt", "r");
if (pf == NULL)
{
printf("错误原因是:%s\n", strerror(errno));
return 0;
}
}
这是个打开文件失败的列子。对于错误信息的打印我们一般用 perror:直接打印错误信息。
#include<stdio.h>
int main()
{
FILE* pf = fopen("data.txt", "r");
if (pf == NULL)
{
//printf("错误原因是:%s\n", strerror(errno));
perror("fopen");
return 0;
}
}
字符函数