C语言实现忽略大小写字符串查找函数 strncasecmp
C语言实现忽略大小写字符串查找函数 strncasecmp
本函数实现了一个C语言函数 strncasestr,用于在一个给定长度的字符串中查找一个子字符串(忽略大小写),并返回子字符串的起始位置。函数接受三个参数:待查找的字符串、要查找的子字符串和待查找字符串的长度。
char *strncasestr(char *str1, const char *str2, int str1_len)
{
int i;
int len = strlen(str2);
char *p = str1;
if (0 == len) {
return NULL;
}
for (i = 0; i < str1_len; i++) {
if (*p == '\0') {
break;
}
if (str1_len - i < len) {
break;
}
if (!strncasecmp(p, str2, len))
return p;
++p;
}
return NULL;
}
函数说明:
- 函数首先计算子字符串
str2的长度len。 - 使用
for循环遍历str1,直到到达字符串末尾或长度小于len。 - 循环中,使用
strncasecmp函数比较当前位置p开始的str1子字符串与str2,忽略大小写。 - 如果匹配成功,返回
p,即子字符串在str1中的起始位置;否则继续循环。 - 如果循环结束,说明没有找到匹配的子字符串,返回
NULL。
使用方法:
char *str1 = "Hello World";
char *str2 = "world";
int str1_len = strlen(str1);
char *result = strncasecmp(str1, str2, str1_len);
if (result != NULL) {
printf("子字符串在 %d 位置找到。\n", result - str1);
} else {
printf("未找到子字符串。\n");
}
输出:
子字符串在 6 位置找到。
注意:
该函数依赖 strncasecmp 函数,请确保在使用该函数之前已经包含了 string.h 头文件。
原文地址: https://www.cveoy.top/t/topic/n5GP 著作权归作者所有。请勿转载和采集!