C语言 百炼成钢26
/*
题目62: 有一下特征字符串"eerrrrqqAB33333ABa333333ABjsfdsfdsa"
编写一个业务函数,
实现功能1:实现按照子串"AB"分割字符串,把“eerrrrqq”,"33333","a333333","jsfdsfdsa"
把实现结果按照二维数组(第2种内存模型)打包传出。
实现功能2:对二维数组(第二种内存模型),进行排序输出
要求1:请自己编写业务一个接口(函数),并实现功能;70分
要求2:编写测试用例。30分
要求3:自己编写内存释放函数
*/ #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h> /*
分析:
使用strstr函数可以很快找出AB的地址,把AB替换成\0 这个前面一段就会成为一个新的字符串
*/ //分割字符串
int SpitAndSortStr(char *pin/*in*/, char(*pout)[]/*out*/,int *rnum){
int ERRO_MSG = ;
if (pin == NULL || pout == NULL || rnum==NULL)
{
ERRO_MSG = ;
printf("pin == NULL || pout==NULL || rnum==NULL 传入参数不可以为空 erro msg:%d\n", ERRO_MSG);
return ERRO_MSG;
}
char *pstart = pin;
int index = ;
char *temp = strstr(pstart, "AB");
while (temp != NULL){
*temp = '\0';
strcpy(pout[index], pstart);
index++;
//指针向后移动2个字节
pstart = temp + ;
temp=strstr(pstart, "AB");
}
strcpy(pout[index], pstart);
*rnum = index + ;
return ERRO_MSG;
} //字符串排序
int sortstr(char (*pin)[],int num){
int ERRO_MSG = ;
if (pin==NULL)
{
ERRO_MSG = ;
printf("传入参数不可以为空 erro msg:%d\n", ERRO_MSG);
return ERRO_MSG;
}
int i = ,j=;
char temp[] = {};
for (int i = ; i < num; i++)
{
for (j = i + ; j < num; j++)
{
if (strcmp(pin[i],pin[j])>)
{
strcpy(temp, pin[i]);
strcpy(pin[i], pin[j]);
strcpy(pin[j], temp);
}
}
}
return ERRO_MSG;
} //打印二维数组
void print(char(*pin)[],int num){
if (pin==NULL)
{
printf("传入的参数不可以为空!\n");
return;
}
int i = ;
for (i = ; i < num; i++)
{
printf("%s\n", pin[i]);
}
} void main(){
char str[] = "eerrrrqqAB33333ABa333333ABjsfdsfdsa";
char arr[][] = { };
int ret = ,num=;
ret = SpitAndSortStr(str, arr,&num);
if (ret!=)
{
printf("分割字符串程序执行出错!\n");
}
//打印字符串
print(arr, num);
printf("\n------------排序后---------------------\n");
ret = sortstr(arr, num);
if (ret != )
{
printf("排序程序执行出错!\n");
}
//打印字符串
print(arr, num);
printf("程序执行完毕!\n");
system("pause");
}
C语言 百炼成钢26的更多相关文章
- C语言 百炼成钢19
/* 题目55: 有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串, ...
- C语言 百炼成钢17
//题目49:老师将糖果分成若干份,让学生按任意次序领取,第一个领取的,得到1份加上剩余糖果的1/10, //第二个领取的,得到2份加上剩余糖果的1/10,第三个领取的,得到3份加上剩余糖果的1/10 ...
- C语言 百炼成钢9
//题目25:求1+2!+3!+...+20!的和 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib ...
- C语言 百炼成钢3
//题目7:用*号输出空心菱形图案 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> # ...
- C语言 百炼成钢2
//题目4:输入某年某月某日,判断这一天是这一年的第几天? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<st ...
- C语言 百炼成钢1
//题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> ...
- C语言 百炼成钢18
//题目52:用递归打印以下图形 //* //*.*. //*..*..*.. //*...*...*...*... //*....*....*....*....*.... #include<s ...
- C语言 百炼成钢16
//题目46:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只 //猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了 //一个,它同样把 ...
- C语言 百炼成钢15
//题目43:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出 //圈子,问最后留下的是原来第几号的那位. #include<stdio.h> #inclu ...
随机推荐
- swift 常用第三方库
1.Network: Alamofire:著名的AFNetworking网络基础库Swift版 -https://github.com/Alamofire/Alamofire SwiftyJSON: ...
- FFMpeg框架代码阅读
http://blog.csdn.net/wstarx/article/details/1572393 FFMPEG源码分析(二) http://www.cnblogs.com/qingquan/ar ...
- vue - node_modules
详情见:node_modules导包机制 在打包或者结束项目时,这个文件夹(node_modules)不应该被打包. 你应该打包其它的文件,如果要运行(直接用以下命令安装即可,它会根据package. ...
- html 接收GET请求参数
function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +" ...
- apache相关配置
PHP配置 php.ini-development:开发时的php.ini配置 php.ini-production:项目运行时的php.ini配置 复制php.ini-development文件到C ...
- json 生成 json字符串
生成json格式的字符串. 需要相关包 json-lib-2.3-jdk15.jar morph-1.1.1.jar morph-sandbox-1.1.1.jar ezmorph-1.0.6.jar ...
- Tomcat版本历史
https://en.wikipedia.org/wiki/Apache_Tomcat Apache Tomcat versions Series Declared stable Descriptio ...
- Python 使用 UTF-8 编码(转)
Python 使用 UTF-8 编码(转) 原文出处:http://blog.chenlb.com/2010/01/python-use-utf-8.html 一般我喜欢用 utf-8 编码,在 py ...
- (C#)Windows Shell 外壳编程系列1 - 基础,浏览一个文件夹
1 - 基础,浏览一个文件夹 我们知道,在win32中是以外壳名字空间的形式来组织文件系统的,在外壳名字空间里的每一个对象(注)都实现了一个IShellFolder的接口,通过这个接口我们可以直接查询 ...
- DevExpress SpinEdit控件使用实例——删除ASPxSpinEdit右边的上下小箭头SpinButtons-ShowIncrementButtons
使用ASPxSpinEdit来添加数字类型的输入框: 默认情况下, SpinEdit通过点击右边的上下箭头来加减number,下面的代码是去掉上下箭头,内容居中显示,并将边框颜色置为白色: <d ...