在 C11 标准中,为了增强字符串操作的安全性,引入了一系列安全版本的字符串函数。下面详细解析 strchr_s、strrchr_s 和 strstr_s 这三个字符串安全查找函数。
1. strchr_s - 安全字符查找
函数原型
errno_t strchr_s(
const char *str,
size_t strsz,
int ch,
char **result
);
功能说明
查找字符 ch 在字符串 str 中第一次出现的位置。
参数说明
str:要搜索的字符串strsz:字符串缓冲区大小ch:要查找的字符result:指向指针的指针,用于存储找到的位置
返回值
- 成功:返回 0
- 失败:返回非零错误码
示例代码
#include <stdio.h>
#include <string.h>
int main() {
const char *text = "Hello, World!";
char *result = NULL;
errno_t err;
// 查找字符 'W'
err = strchr_s(text, strlen(text) + 1, 'W', &result);
if (err == 0 && result != NULL) {
printf("找到字符 'W',位置:%ld\n", result - text);
printf("剩余字符串:%s\n", result);
} else {
printf("未找到字符 'W'\n");
}
return 0;
}
2. strrchr_s - 安全反向字符查找
函数原型
errno_t strrchr_s(
const char *str,
size_t strsz,
int ch,
char **result
);
功能说明
查找字符 ch 在字符串 str 中最后一次出现的位置。
示例代码
#include <stdio.h>
#include <string.h>
int main() {
const char *filename = "document.txt.backup";
char *result = NULL;
errno_t err;
// 查找最后一个点号
err = strrchr_s

最低0.47元/天 解锁文章
4445

被折叠的 条评论
为什么被折叠?



