用编写代码以确定字符串a是否包含字符串b。
例
文字列A:information
文字列B:form
文字列C:from
这个的时候,文字列B和文字列A关系「包含」
文字列C和文字列Aに「不包含」
C Standard Library和strstr禁止使用
字符串算法的经典问题了, 请看一些资料: https://blog.csdn.net/u010089444/article/details/70226015
字符串算法的经典问题了, 你可以写一个最基本的算法:
1) 先找到第一个相同的字符,
2)再看从这个字符开始的子字符串是否也相同...
3)直到所有位置都遍历过了
另外,请看一些学习资料: https://blog.csdn.net/u010089444/article/details/70226015
/*
プログラムの目的:
文字列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]時:含まれない
/*