本帖最后由 jackz007 于 2024-10-30 12:00 编辑
试试这个代码:#include<stdio.h>
int main(void)
{
char t , str[2][1000] ;
int c , d[1000] , x , y , i , j , k , p ;
fgets(str[0] , 1000 , stdin) ;
fgets(str[1] , 1000 , stdin) ;
for(x = 0 ; str[0][x] ; x ++) ;
str[0][x -- - 1] = 0 ;
for(y = 0 ; str[1][y] ; y ++) ;
str[1][y -- - 1] = 0 ;
for(i = 0 ; i < x ; i ++) {
d[i] = 0 ;
for(j = 0 ; j < y ; j ++) {
if(str[0][i] == str[1][j]) {
d[i] = j + 1 ;
break ;
}
}
}
for(c = k = 0 ; k < x && ! c ; k ++) {
for(p = 1 ; k < x && d[k] != p ; k ++) ;
for(j = 1 , i = k + 1 ; i < x && j < y ; i ++) {
if(d[i]) {
if(d[i] == p + 1) {
p ++ ;
j ++ ;
} else {
break ;
}
}
}
if(j == y) {
t = str[0][i] ;
str[0][i] = 0 ;
printf("%s\n" , & str[0][k]) ;
str[0][i] = t ;
k = i - 1 ;
c ++ ;
}
}
if(! c) printf("no match.\n") ;
}
编译、运行实况:D:\[exercise]\C>g++ -static -o x x.c
D:\[exercise]\C>x
dianzishejigongzuoshi
dho
dianzishejigo
D:\[exercise]\C>x
dianzishejigongzuoshi
oi
oshi
D:\[exercise]\C>x
dianzishejigongzuoshi
io
igo
D:\[exercise]\C>
|