C语言学习第十八天(字符函数和字符串函数二)

本文详细介绍了C语言中的strtok函数用于字符串分割,以及strerror函数用于获取错误信息。通过示例展示了如何使用这两个函数处理字符串和处理程序运行时错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值