/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
int find(char *s,char *a,char *b);
int main()
{
char s[100],a[100],b[100]; //定义三个数组存放字符串和头尾字符串
{
char s[100],a[100],b[100]; //定义三个数组存放字符串和头尾字符串
printf("Enter the long string : \n"); //提示用户输入字符串
scanf("%s",s);
printf("Enter the head string : \n");
scanf("%s",a);
printf("Enter the tail string : \n");
scanf("%s",b);
scanf("%s",s);
printf("Enter the head string : \n");
scanf("%s",a);
printf("Enter the tail string : \n");
scanf("%s",b);
find(s,a,b); //调用函数
return 0;
}
}
int find(char *s,char *a,char *b)
{
int head,tail; //定义头尾节点位置变量
int i = 0,j = 0,k = 0,flag = 0; //定义循环变量i,j,k和标志位flag
{
int head,tail; //定义头尾节点位置变量
int i = 0,j = 0,k = 0,flag = 0; //定义循环变量i,j,k和标志位flag
while(s[i] != '\0')
{
if((s[i] == a[j]) && !flag) //当有一个字符和头字符串相等,继续判断是不是头字符串
{
head = i; //将字符串位置赋值给头节点位置
while((s[i] == a[j]) && s[i] != '\0') //进入循环判断头字符串
{
i++;
j++;
flag = 1;
}
}
{
if((s[i] == a[j]) && !flag) //当有一个字符和头字符串相等,继续判断是不是头字符串
{
head = i; //将字符串位置赋值给头节点位置
while((s[i] == a[j]) && s[i] != '\0') //进入循环判断头字符串
{
i++;
j++;
flag = 1;
}
}
if((a[j] == '\0') && flag) //当头字符串遍历结束并且标志位变为1,就认为已经找到头字符串
{
while((s[i] == b[k]) && s[i] != '\0') //进入循环判断尾字符串
{
i++;
k++;
flag = 0;
}
}
{
while((s[i] == b[k]) && s[i] != '\0') //进入循环判断尾字符串
{
i++;
k++;
flag = 0;
}
}
if((b[k] == '\0') && !flag) //尾字符串遍历结束并且标志位为0,就认为已经找到尾字符串
{
tail = i;
for(i = head;i < tail;i++) //按照头尾节点位置输出字符串
{
printf("%c",s[i]);
}
printf("\n");
break;
}
i++;
}
{
tail = i;
for(i = head;i < tail;i++) //按照头尾节点位置输出字符串
{
printf("%c",s[i]);
}
printf("\n");
break;
}
i++;
}
return 0;
}
}