[数据结构PTA]串——查找子串
本题要求实现一个字符串查找的简单函数。 函数接口定义: char *search( char *s,char *t ); 函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。 裁判测试程序样例: #include #define MAXS 30 char *search(char *s,char t); void ReadString( char s[] ); / 裁判提供,细节不表 */ int main() { char s[MAXS],t[MAXS],*pos; ReadString(s); ReadString(t); pos = search(s,t); if ( pos != NULL ) printf("%dn",pos - s); else printf("-1n"); return 0; } /* 你的代码将被嵌在这里 */ 输入样例1: The C Programming Language ram 输出样例1: 10 输入样例2: The C Programming Language bored 输出样例2: -1 #include #define MAXS 30 char *search(char *s,char *t); void ReadString( char s[] )/* 裁判提供,细节不表 */ { gets(s); } int main() { char s[MAXS],pos - s); else printf("-1n"); return 0; } char *search( char *s,char *t ) { int len1 = strlen(s); int len2 = strlen(t); int i = 0,j = 0; while (i < len1 && j < len2) { if (s[i] == t[j]) {i++; j++;} else {i = i - j + 2; j = 1;} } if(j >= len2) return &s[i - j]; return NULL; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |