#include <stdio.h>
#include <string.h>
void findMaxstr(char *s1,char *s2);
int main() {
printf("请输入第一个字符串:");
char *str1;
scanf("%s",str1);
printf("请输入第二个字符串");
char *str2;
scanf("%s",str2);
findMaxstr(str1,str2);
return 0;
}
void findMaxstr(char *s1,char *s2){
int n2 =0;int l=0;
for(int i = 0;i < strlen(s1);i++)
{ int n1 =0;
for(int j = 0;j < strlen(s2);j++){ //遍历整个s2找出与s1相同的那个字符
if (s2[j] == s1[i]) {
n1 = 1; //找到一个相同的记录为1
for(int k =1;s2[j+k] == s1[i+k];k++){
n1++; //找到继续相同的就+1;
}
}
j+= n1-1; //拿s1[i]与s2从s2[j+n1]开始比较
}
if (n1>n2){ //记录最大子字符串的长度
n2 = n1;
l = i; //记录下最大子字符串的起始标记;
}
}
//当子串确实存在时。
if(n2 != 0){
printf("最大的子字符串是:");
for (int i = 0; i < n2;i++) {
printf("%c",s1[i+l]);
}
}else{
printf("不存在子字符串");
}
}
请问哪里错了啊? |