qq_48422910
2021-02-02 23:54
采纳率: 100%
浏览 38

(大一水平)求大佬帮帮忙写段代码。

用编写代码以确定字符串a是否包含字符串b。

文字列A:information

 文字列B:form

 文字列C:from

这个的时候,文字列B和文字列A关系「包含」

    文字列C和文字列Aに「不包含」

C Standard Library和strstr禁止使用

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • SoftwareTeacher 2021-02-03 01:53
    已采纳

    字符串算法的经典问题了, 请看一些资料: https://blog.csdn.net/u010089444/article/details/70226015

    点赞 1 打赏 评论
  • SoftwareTeacher 2021-02-03 02:07

    字符串算法的经典问题了, 你可以写一个最基本的算法:

    1) 先找到第一个相同的字符,

    2)再看从这个字符开始的子字符串是否也相同... 

    3)直到所有位置都遍历过了

    另外,请看一些学习资料: https://blog.csdn.net/u010089444/article/details/70226015

    点赞 1 打赏 评论
  • qq_48422910 2021-02-05 22:50

    /*

    プログラムの目的:

    文字列aに文字列bが含まれるかを判定するコード

    文字列A:information

      文字列B:form

      文字列C:from

    のとき,文字列Bは文字列Aに「含まれる」

         文字列Cは文字列Aに「含まれない」

    */

    #include <stdio.h>

    #include <string.h>

    #include <stdlib.h>

    int is_in(char *document, char *search_word);

    int find(char *buf, char *sub);

    int main()

    {

    // 関数1を呼び出す

    //比較したいテキスト[form]と[from]交換だけです。

    if (is_in("information", "from") == 1) // 関数の呼び出し:パラメーター2:比較テキスト、パラメーター1:元のテキスト

    {

    printf("\n含まれる\n");

    }

    else

    {

    printf("\n含まれない\n");

    }

    }

    // 関数の作成(メソッド1):文字列関数を含めるかどうか

    int is_in(char *document, char *search_word)

    {

    int i = 0, j = 0, flag = -1;

    while (i < strlen(document) && j < strlen(search_word))

    {

    if (document[i] == search_word[j])

    { //文字が同じ場合、両方の文字が増加します

    i++;

    j++;

    }

    else

    {

    i = i - j + 1; //メイン文字列文字は、最初の比較後に文字に戻ります

    j = 0; //文字列文字の再起動

    }

    if (j == strlen(search_word))

    { //試合が成功した場合

    flag = 1; //文字列が表示されます

    break;

    }

    }

    return flag;

    }

    /*

    [form]時:含まれる

    [from]時:含まれない

    /*

     

    点赞 打赏 评论

相关推荐 更多相似问题