C语言,很难的题,老师都做不出来。

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:57:47
编写一个程序,用于接受2个字符串,判断第1个字符串中是否包含第2个字符串,如果包含说明第2个字符串在第1个字符串中的位置(即:第2个字符串第1个字符在第一感字符串中出现的位置)。

我的思路有点乱,

在编程中遇到一点问题,
如果用户输入第1字符串 mornning 第2个字符串 nning如果是这样的形式该怎么判断?
还是不行。`如果2个以上重复就不知道该怎么办了。

就像里子似的,

我和老师都做了,如果用户输入
morning
ning 这样能判断出来包括,第几个字符。

如果是
mornning
nning
如果是这样的话就不行了,怎么也想不出来该怎么办,看了你们的也做了一下,还是不行。`

思路
两个字符串a[i],b[j]
用一个循环,k从0到strlen(a)-1,
然后就是把a[k]开始的strlen(b)个数附给c字符串数组
然后判断c是否与b相等(可以定义成一个函数)
如果 是 跳出,
不是 继续循环

小儿科,没一点挑战性,你们我怀疑你们老师是不是该换了?

开始输入两个字符串开始.
/*****************************************/
#include<stdio.h>
/*****************************************/
int strlen1(char *str1);
int include1(char *string1,char *string2);
/*****************************************/
int main(void)
{
unsigned int sum=0;
char str1[20],str2[20];
scanf("%s%s",str1,str2);
/*sum=strlen1(str1);*/
sum=include1(str1,str2); /*sum等于0代表没,否则给你说位置*/
printf("%d\n",sum);
return 0;
}
/*****************************************/
int strlen1(char *str1)
{
char *str2=str1;
for(;*str2;str2++);
return str2-str1;
}
/*****************************************/
int include1(char *string1,char *string2)
{