c - 制作一个匹配两个字符串(如果它们相同)的程序

标签 c string

我正在尝试编写一个比较两个字符串的程序。如果 *s1*s2 相同,我想匹配它们。但是,如果 s2 包含一个星号 ('*'),我们可以用任何字符串(甚至是空字符串)替换这个星号来生成 s1 并且s2 相同,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"));
    }

最佳答案

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

关于c - 制作一个匹配两个字符串(如果它们相同)的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38421298/

相关文章:

c++ - 如何从 Little-Endian UTF-16 编码字节中获取 C++ std::string

将 float 转换为字节数组的 C 函数

c - 静态变量重新初始化解决方案

c - 为什么当我写到数组末尾时我的程序没有崩溃?

ios - 无法将类型 'NSDate' 的值分配给类型 'String?' 的值

java - "Nice"获取开始标记和匹配结束标记(括号等)之间的子字符串的方法

c - 编译C代码的脚本

c - 我如何将一个函数内的int指针传递给另一个函数,并在那里进行操作?

Swift:拆分以逗号分隔的字符串,但如果逗号用单引号引起来则不会

java - 替换字符串中的字符