这个问题如何用c语言解决呢?试过了直接用
后来看了一会儿字符串函数,想用库函数解,但是也没有写对(如果可以烦请帮我改正以下^_^虽然但是如果是盘古开天那样的错误量就算了吧):
int compare(char* a, char* b) {//abb abb//abcb abcb//abcdef efghij
int le1 = strlen(a);
int le2 = strlen(b);
char y[1001];
int k;
int minlen = (le1 < le2) ? le1 : le2;
long long int i, j;
for (i = minlen; i > 0;i--) {
strncpy(y, b, i);
char* result = strstr(a, y);
if (result != NULL) {
j = result - a;
printf("here");
return (le1 - j);
}
else {
printf("there");
continue;
}
//printf("%p\n%p", result, &a[0]);
//printf("%d\n%d\n%d\n", i, j, k);
}
return -1;
}
int main() {
char st[1001];
char sr[1001];
int i;
scanf("%s%s", st, sr);
int position = compare(st, sr);
printf("%dhereposi\n", position);
if (position == -1) {
printf("%s%s", st, sr);//没有重叠,直接连着输出
}
if (position >= 0) {
printf("%s", st);
for (i = position + 1; i < strlen(sr); i++) {
printf("%c", sr[i]);
}//有重叠:第二个字符串从不重叠的开始输出
}
return 0;
}
求各位给出正确的程序!