加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[数据结构PTA]串——查找子串

发布时间:2020-12-15 04:53:09 所属栏目:百科 来源:网络整理
导读:本题要求实现一个字符串查找的简单函数。 函数接口定义: char *search( char *s,char *t ); 函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。 裁判测试程序样例: #include #define MAXS 30 char *search(char *s,char t);

本题要求实现一个字符串查找的简单函数。

函数接口定义:


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;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读