输入一串字符,输入头串与尾串,在该字符串里找出这段字符串
2016-11-27 20:34
211 查看
#include<stdio.h>
#include<string.h>
#define MAX 1024
int head_flog = 0;
int tail_flog = 0;
char *tail(char *str, char *b)
{
int num = 0;
int len_b;
char *temp = b;
len_b = strlen(b);
if((NULL == str) || (NULL == b))
{
return NULL;
}
if(strlen(str) < strlen(b) )
{
return NULL;
}
if(head_flog != 0)
{
while((*str != '\0') && (!tail_flog))
{
while(*str == *temp)
{
str++;
temp++;
num++;
if(num == len_b)
{
tail_flog = 1;
temp = str -1;
break;
}
}
if((num != 0)&&(num != len_b))
{
num = 0;
temp = b;
str--;
}
str++;
}
}
if(tail_flog != 0)
{
return temp;
}
else
{
printf("string illgeal!\n");
return NULL;
}
}
char *head(char *str, char *a)
{
int num = 0;
int len_a;
char *temp = a;
len_a = strlen(a);
if ((NULL == str) ||(NULL == a))
{
return NULL;
}
if (strlen(str) < strlen(a))
{
return NULL;
}
while ((*str != '\0') && (!head_flog))
{
while(*str == *temp)
{
str++;
temp++;
num++;
if(num == len_a)
{
head_flog = 1;
temp = str - len_a;
break;
}
}
if((num != 0)&&(num != len_a))
{
num = 0;
temp = a;
str--;
}
str++;
}
if(head_flog != 0)
{
return temp;
}
else
{
printf("string illgeal!\n");
}
}
int main()
{
int n;
int i;
char str[MAX];
char a[5];
char b[5];
char *start = NULL;
char *end = NULL;
printf("Enter string(<=100)!\n");
scanf("%s",str);
printf("Enter head string(<=5)!\n");
scanf("%s",a);
printf("Enter tail string(<=5)!\n");
scanf("%s",b);
start = head(str,a);
end = tail(str,b);
n = end - start + 1;
if (n > 0)
{
for (i = 0; i < n; i++)
{
printf("%c",*start);
start++;
}
printf("\n");
}
else
{
printf("No data!\n");
}
return 0;
}
#include<stdio.h>
#include<string.h>
#define MAX 1024
int head_flog = 0;
int tail_flog = 0;
char *tail(char *str, char *b)
{
int num = 0;
int len_b;
char *temp = b;
len_b = strlen(b);
if((NULL == str) || (NULL == b))
{
return NULL;
}
if(strlen(str) < strlen(b) )
{
return NULL;
}
if(head_flog != 0)
{
while((*str != '\0') && (!tail_flog))
{
while(*str == *temp)
{
str++;
temp++;
num++;
if(num == len_b)
{
tail_flog = 1;
temp = str -1;
break;
}
}
if((num != 0)&&(num != len_b))
{
num = 0;
temp = b;
str--;
}
str++;
}
}
if(tail_flog != 0)
{
return temp;
}
else
{
printf("string illgeal!\n");
return NULL;
}
}
char *head(char *str, char *a)
{
int num = 0;
int len_a;
char *temp = a;
len_a = strlen(a);
if ((NULL == str) ||(NULL == a))
{
return NULL;
}
if (strlen(str) < strlen(a))
{
return NULL;
}
while ((*str != '\0') && (!head_flog))
{
while(*str == *temp)
{
str++;
temp++;
num++;
if(num == len_a)
{
head_flog = 1;
temp = str - len_a;
break;
}
}
if((num != 0)&&(num != len_a))
{
num = 0;
temp = a;
str--;
}
str++;
}
if(head_flog != 0)
{
return temp;
}
else
{
printf("string illgeal!\n");
}
}
int main()
{
int n;
int i;
char str[MAX];
char a[5];
char b[5];
char *start = NULL;
char *end = NULL;
printf("Enter string(<=100)!\n");
scanf("%s",str);
printf("Enter head string(<=5)!\n");
scanf("%s",a);
printf("Enter tail string(<=5)!\n");
scanf("%s",b);
start = head(str,a);
end = tail(str,b);
n = end - start + 1;
if (n > 0)
{
for (i = 0; i < n; i++)
{
printf("%c",*start);
start++;
}
printf("\n");
}
else
{
printf("No data!\n");
}
return 0;
}
相关文章推荐
- 02_对N个长度最长可达到1000的数进行排序、对给定的一个字符串,找出有重复的字符,并给出其位置、输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序
- 1、 输入一串字符,只包含“0-10”和“,”找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数。
- C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函
- 【笔试题】C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出&#39;b&#39;。
- c语言从键盘中输入一串字符串,将字符中的大写转化成小写字母,将小写字母转换成大写字母,以*号键结束
- 【C语言】在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出’b’
- 【笔试题】C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'。
- 【C语言】在字符串中找出第一个只出现一次的字符。 如输入“abaccdeff”,则输出'b'。
- 输入一串字符,找到相同且最长的字符串
- 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。
- 写一个函数,输入一串字符串,求这个字符串中有多少个英文,多少空格,多少个数字,多少个其它字符
- (1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串
- 编写一个程序,输入一串不超过60个字符组成的且不包含换行符的字符串,将字符串中的A到Z的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同,并且要求只对A到Z的字母重新排列,其
- 输入一串字符,分析字符串中出现了哪些字符,每个字符出现了多少次
- 输入一串字符,只包含“0-10”和“,”,找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉
- C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出&#39;b&#39;
- 输入一串字符串,运用输出方法计算其中大写 小写 数字 和其他字符的个数