字符串比对(10分)

题目内容:

题目提及来很简单,你会读到两个字符串,每一个字符串占据一行,每一个字符串的长度均小于10000字符,并且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,若是找不到,则输出-1。
注意,第一个字符的位置是0。第一个字符串在第二个字符串中的位置可能不止一处。字符串中可能含有空格。两个字符串的长度必定大于0。code

输入格式:

两个字符串,一行一个。字符串

输出格式:

第一个字符串在第二个字符串中出现的位置,按照从小到到的顺序排列,每一个数字后面有一个空格。
若是在第二个字符串中找不到第一个字符串,则输出-1。get

输入样例:

abba
ababbba abbabbabbabbaaccstring

输出样例:

8 11 14 17io

#include <stdio.h>
#include <string.h>	

int main(){
    char A[10000],B[10010];
    gets(A);
    gets(B);
    int	sign=0,al=strlen(A),bl=strlen(B);
    for(int i=0;i<bl;i++){
        for(int k=0;k<al;k++){
            if(A[k]!=B[i+k])
                break;	
            if(k==al-1){		//k=0~al-1 时,程序都没有跳出循环 	
                sign=1;			//说明:找到了第一个字符串
                printf("%d ",i);
            }
        }
    }
    if(!sign)	
        printf("-1");
    return 0;
}
相关文章
相关标签/搜索