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 ...
随机推荐
- 一个tomcat中部署多个项目
在各自的项目web.xml中添加 <context-param> <param-name>webAppRootKey</param-name> <param- ...
- javascript——正則表達式
正則表達式(RegExp对象):主要用于表单验证 1.创建正則表達式: (1).var ret = /pattern/; pattern是内容.能够是正則表達式的内容,能够是字符或是其它的内容 (2) ...
- Java创建和读取Json
在Java中构造和解析JSON我用的是org.json,附件为相应的org.json.jar. 下面是两个函数,一个是创建JSON,一个是从文本构造JSON并解析之. 创建json: //constr ...
- windows下流媒体nginx-rmtp-module服务器搭建及java程序调用fmpeg将rtsp转rtmp直播流【转】
https://github.com/illuspas/nginx-rtmp-win32 http://bashell.sinaapp.com/archives/build-nginx-rtmp-mo ...
- Android 解决qq分享后返回程序出现的Bug
问题:当我们使用qq分享时,分享成功后选择留在qq,这个时候按home键,回到手机主界面,在点击回到我的app,这个时候会出现界面显示出来了,但是任何事件都不响应,即按钮没反应. 分析:这个时候回到我 ...
- Bitmap和Drawable的互相转换
刚好之前的项目实用到.怕遗忘了.就先记录下来.然后会用到的时候直接来这copy使用就好了. 1.Bitmap ---->Drawable: public static Drawable bitm ...
- Loadrunner关于页面检查的几个函数详解
环境:Loadrunner版本:8.0自建一个test.html文件:<html><head><meta name="google1" content ...
- ES6 let用法
1.实现块作用域 2.不存在变量提升. ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域.凡是在声明之前就使用这些变量,就会报错.
- 学会Git玩转Github笔记(三)—— Github Pages 搭建个人网站
https://help.github.com/categories/github-pages-basics/ 一.个人站点 访问 https://用户名.github.io 搭建步骤 1) 创建个人 ...
- input-form-select-a-img-ul-dl标签
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...