今天学习了函数,老规矩,留一个我最满意的代码。
/*
* 2017年7月19日09:49:21
* 5.输入一个字符串,同时输入帧头和帧尾(可以是多个字符),
* 将该字符串中合法的帧识别出来.
* 提示:帧头和帧尾分别是head和tail
* 字符串”asdheadhauboisoktail”中headhauboisoktail是合法帧
* */
#include<stdio.h>
#include<string.h>
//先写一个函数,要求在字符串中找到你要的字符
char* findstr1(char *str,char *seek)
{
char *p = NULL;
int len = strlen(seek);
while(*str)
{
if (strncmp(str,seek,len)==0)
{
p = str;
break; //防止找到第二次,改变合法针
}
str ++;
}
return p;
}
char* findstr2(char *str,char *seek)
{
char *p = NULL;
int len = strlen(seek);
while(*str)
{
if (strncmp(str,seek,len)==0)
{
p = str;
//break; 第二个要找到屁股上
}
str ++;
}
return p;
}
//再写一个函数,找出合法的字符,输出
void findsave(char *str,char *head,char *tail)
{
char *phead = findstr1(str,head);
char *ptail = findstr2(str,tail);
if (phead!=NULL && ptail!=NULL)
{
ptail += strlen(tail);
*ptail = '\0';
puts(phead);
}
else
printf("没有合法针");
}
int main()
{
char str[] = "iisdaheadadadaheadgrgrghdtailfgrggtail";
findsave(str,"head","tail");
return 0;
}