用C语言编写一个从一个字符串中查找另一个不区分大小写字符串的函数
时间: 2023-05-15 22:05:19 浏览: 116
可以使用C语言的标准库函数strcasestr()来实现这个功能,该函数可以在一个字符串中查找另一个不区分大小写的字符串,并返回第一次出现的位置。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
char* stristr(const char* str1, const char* str2) {
char* p1 = (char*)str1;
char* p2 = (char*)str2;
char* p3 = NULL;
if (*str2 == '\0') {
return (char*)str1;
}
while (*p1 != '\0') {
p3 = p1;
while (*p2 != '\0' && tolower(*p2) == tolower(*p3)) {
p2++;
p3++;
}
if (*p2 == '\0') {
return p1;
}
p2 = (char*)str2;
p1++;
}
return NULL;
}
int main() {
char str1[] = "Hello, World!";
char str2[] = "world";
char* result = stristr(str1, str2);
if (result != NULL) {
printf("'%s' found in '%s' at position %ld.\n", str2, str1, result - str1);
} else {
printf("'%s' not found in '%s'.\n", str2, str1);
}
return 0;
}
```
该函数使用了两个指针p1和p2来遍历字符串,同时使用一个指针p3来记录当前比较的位置。如果找到了匹配的字符串,则返回第一次出现的位置;否则返回NULL。
阅读全文