【问题标题】:Check substring of a string检查字符串的子字符串
【发布时间】:2011-02-18 08:21:17
【问题描述】:

我正在尝试检查程序中的第二个参数是否是第一个参数的子字符串。问题是它只有在子字符串以字符串的相同字母开头时才有效。

编辑:必须用 C 语言完成,而不是 C++。

int main(int argc, char **argv){

    if (argc != 3) {
        printf ("Usage: check <string one> <string two>\n");
    }

    int result = my_strstr(argv[1], argv[2]);

    if(result == 1){
        printf("%s is a substring of %s\n", argv[2], argv[1]);
    }
    else{
        printf("%s is not a substring of %s\n", argv[2], argv[1]);
    }
    return 0;
}

【问题讨论】:

  • ...具体来说,禁止你使用除at之外的任何库函数的作业?
  • 当你将字符串传递给函数时,使用'const string&'。
  • 为什么标准的 C strstr 函数不能接受?
  • 请不要以已经给出的答案无效的方式编辑问题。
  • my_strstr的定义在哪里?

标签: c string substring arrays


【解决方案1】:

你的算法不正确。

你想要的是嵌套循环。循环str 的长度,然后循环sub 的长度以查看是否从该位置开始匹配。

【讨论】:

    【解决方案2】:

    我正在做作业,所以:看看subStart 是用什么初始化的。

    【讨论】:

      【解决方案3】:

      您对问题的分析(“仅当子字符串以字符串的相同字母开头时才有效”)不正确,因此您正在寻找错误的问题。由于这似乎是家庭作业,所以我只是暗示潜在的问题。

      虽然它在 Michiganigan 上失败,但它可以在 Michiganhigan 上正常工作。

      为什么它适用于higan 而不是iganigan 的第一个字母是什么?与Michigan 有什么不同?

      【讨论】:

        猜你喜欢
        • 2013-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 2013-05-18
        • 1970-01-01
        • 2013-02-18
        • 1970-01-01
        相关资源
        最近更新 更多