用c语言判断俩个字符串是否匹配,其中一个字符串中包括通配符*,*可以代表任意一个非空字符,分俩行输入俩个字符串,字符串中可以包括空格,以#结束,其中第一行字符串中包括通配符*,判断俩个字符串是否匹配,若匹配,输出yes,不匹配,输出no
时间: 2024-05-03 17:21:15 浏览: 202
fp.rar_wildcard
换行符结尾。
可以使用C语言中的字符串比较函数strcmp()和字符匹配函数strchr()来判断。
具体步骤如下:
1. 从标准输入中读入第一个字符串,可以使用fgets()函数。
2. 从标准输入中读入第二个字符串,同样使用fgets()函数。
3. 判断第二个字符串中是否包括通配符*,可以使用strchr()函数。
4. 如果第二个字符串中包括通配符*,则使用strstr()函数来查找第一个字符串中是否存在匹配的子串。
5. 如果第二个字符串中不包括通配符*,则直接使用strcmp()函数比较两个字符串是否相等。
示例代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
fgets(str1, 100, stdin);
fgets(str2, 100, stdin);
if (strchr(str2, '*') != NULL) { // 包含通配符
char *p = strstr(str1, str2);
if (p != NULL) {
printf("Matched\n");
} else {
printf("Not matched\n");
}
} else { // 不包含通配符
if (strcmp(str1, str2) == 0) {
printf("Matched\n");
} else {
printf("Not matched\n");
}
}
return 0;
}
```
阅读全文