输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来. 提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headhau
来源:互联网 发布:天庭淘宝店 下载 编辑:程序博客网 时间:2024/05/14 14:29
- #include<stdio.h>
- #include<string.h>
- int head_flog = 0;//用于标记找到尾的标志
- int tail_flog = 0;//用于标记找到头的标志
- char *tail(char *s, char *b)//找到tail地址
- {
- int num = 0;//计数字符长度,和b比较
- int len_b;
- char *temp = b;//用于返回尾地址值的指针
- len_b = strlen(b);//b的长度
- if((NULL == s) || (NULL == b))//s,b为空,返回空地址
- {
- return NULL;
- }
- if(strlen(s) < strlen(b) )//s长度小于b长度,返回空地址
- {
- return NULL;
- }
- if(head_flog != 0)//找到头后,在开始找尾
- {
- while((*s != '\0') && (!tail_flog))//*s不为空,且未找到尾
- {
- while(*s == *temp)
- {
- s++;
- temp++;
- num++;
- if(num == len_b)//找到尾,赋值尾地址值和找到尾的标记
- {
- tail_flog = 1;
- temp = s -1;
- break;
- }
- }
- if((num != 0)&&(num != len_b))//伪尾部,重新赋值找
- {
- num = 0;
- temp = b;
- s--;//若伪尾部和真尾连续,则s指针要后退
- }
- s++;
- }
- }
- if(tail_flog != 0)//找到尾,返回尾地址值
- {
- return temp;
- }
- else
- {
- printf("string illgeal!\n");
- return NULL;
- }
- }
- char *head(char *s, char *a)//找到head的地址
- {
- int num = 0;//计数字符长度,用于和a长度比较
- int len_a;
- char *temp = a;//用于返回头地址值的指针
- len_a = strlen(a);//字符a长度
- if ((NULL == s) ||(NULL == a))//s,a为空,返回空指针
- {
- return NULL;
- }
- if (strlen(s) < strlen(a))//s长度小于a的长度,返回空指针
- {
- return NULL;
- }
- while ((*s != '\0') && (!head_flog))//*s不为空,且未找到头
- {
- while(*s == *temp)
- {
- s++;
- temp++;
- num++;
- if(num == len_a)//找到头部,赋值头指针值和找到头的标记
- {
- head_flog = 1;
- temp = s - len_a;
- break;
- }
- }
- if((num != 0)&&(num != len_a))//伪头部,重新赋值找
- {
- num = 0;
- temp = a;
- s--;//若伪头和真头连续,则s要指针后退
- }
- s++;
- }
- if(head_flog != 0)//找到头,返回头地址值
- {
- return temp;
- }
- else
- {
- printf("string illgeal!\n");
- }
- }
- int main()
- {
- char s[100];
- char a[5];
- char b[5];
- int n;//保存有效字符的长度
- int i;
- char *start = NULL;
- char *end = NULL;
- printf("Enter string(<=100)!\n");
- scanf("%s",s);
- printf("Enter head string(<=5)!\n");
- scanf("%s",a);
- printf("Enter tail string(<=5)!\n");
- scanf("%s",b);
- start = head(s,a);//开始地址
- end = tail(s,b);//结束地址
- n = end - start + 1;
- if (n > 0)//tail在head的后面,存在有效数据,否则无效
- {
- for (i = 0; i < n; i++)
- {
- printf("%c",*start);
- start++;
- }
- printf("\n");
- }
- else
- {
- printf("No data!\n");
- }
- return 0;
- }
0 0
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来. 提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headhau
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来. 提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headhau
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来. 提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headhaubo
- 题目:输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来. 提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headha
- 题目:输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.
- 4.5题目: 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来。
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.
- 输入一个字符串,同时输入帧头和帧尾
- 输入一个字符串 在输入帧头 帧尾 取合法帧 (标志位的使用)
- 简单LinuxC程序关于实现识别字符串中合法的帧(字符串输入)
- 题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
- 去除头帧和尾帧的字符串
- 接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写
- 接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
- 输入一个字符串,编写函数统计该字符串中的字母、数字和其他字符的个数;
- 超级扩展的textview(让我们开启自定义之旅吧
- cookie和session区别
- JMX代码编写
- 从零开始搭建一个完善的MVP开发框架
- C++ 私有构造函数的作用
- 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来. 提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headhau
- java Integer类的缓存
- 数字转字符串(改)
- 左右滑动实现activity之间的跳转
- Python中字典的操作
- 文本编辑器vim的使用技巧
- 欧拉定理(Tetration,玲珑杯 Round#5 E lonlife 1060)
- 软件工程项目迭代周报(一)
- pythong中文编码问题