制作一个匹配两个字符串的程序

时间:2016-07-17 12:39:35

标签: c string

我试图制作一个比较两个字符串的程序。如果它们相同,我想匹配*s1*s2。但是,如果s2包含明星(’*’),我们可以用任意字符串(甚至为空)替换此星标,以使s1s2相同,并s2可以容纳尽可能多的明星。
例如,"main.c""*.c"可以匹配,因为可以用字符串’*’替换"main"以使这两个字符串相同。到目前为止我所尝试的内容可以在下面的代码中看到:

     #include

    int identic(char *s1, char *s2)
    { 
       if(*s1 != '\0' && s2 == '')
           return (identic(s1 + 1, s2) || identic(s1, s2 + 1)); 
       if(*s1 == '\0' && s2 == '') 
           return (identic(s1, s2 + 1));
       if(*s1 == *s2 && *s2 != '\0' && *s2 != '\0')
           return (identic(s1 + 1, s2 + 1));
       if(*s1 == *s2 && *s1 == '\0' && *s2 == '\0') 
           return (1); 
       return (0);     
    } 
    int main() { 
        printf("%c\n", identic("asfd", "f"));
    }

1 个答案:

答案 0 :(得分:2)

当我将s2 == ''替换为*s2 == '*'#include替换为#include <stdio.h>时,您的代码似乎工作正常。