用C语言编写一个判断字符串子串与一个字符串数组中的元素有无相同的函数,忽略大小写
时间: 2023-05-20 16:00:45 浏览: 138
C语言中判断两数组中是否有相同的元素
以下是一个用C语言编写的判断字符串子串与一个字符串数组中的元素有无相同的函数,忽略大小写的示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int is_substring(char *str, char **arr, int len) {
int i, j;
for (i = 0; i < len; i++) {
if (strstr(arr[i], str) != NULL) {
return 1;
}
for (j = 0; arr[i][j] != '\0'; j++) {
arr[i][j] = tolower(arr[i][j]);
}
if (strstr(arr[i], str) != NULL) {
return 1;
}
}
return 0;
}
int main() {
char *arr[] = {"Hello", "world", "CSDN", "AI"};
char *str1 = "csdn";
char *str2 = "openai";
printf("%d\n", is_substring(str1, arr, 4));
printf("%d\n", is_substring(str2, arr, 4));
return 0;
}
```
该函数接受一个字符串和一个字符串数组,以及数组的长度作为参数,返回一个整数值。如果字符串是数组中任意一个元素的子串(忽略大小写),则返回1,否则返回0。在函数中,我们首先使用标准库函数strstr()来判断字符串是否是数组中任意一个元素的子串,如果是,则直接返回1。如果不是,则将数组中每个元素的字母全部转换为小写,再次使用strstr()函数进行判断。最后,如果都不是,则返回0。
注意,我们在函数中使用了标准库函数tolower()来将字母转换为小写。
阅读全文