/*
题目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的更多相关文章

  1. C语言 百炼成钢19

    /* 题目55: 有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串, ...

  2. C语言 百炼成钢17

    //题目49:老师将糖果分成若干份,让学生按任意次序领取,第一个领取的,得到1份加上剩余糖果的1/10, //第二个领取的,得到2份加上剩余糖果的1/10,第三个领取的,得到3份加上剩余糖果的1/10 ...

  3. C语言 百炼成钢9

    //题目25:求1+2!+3!+...+20!的和 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib ...

  4. C语言 百炼成钢3

    //题目7:用*号输出空心菱形图案 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> # ...

  5. C语言 百炼成钢2

    //题目4:输入某年某月某日,判断这一天是这一年的第几天? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<st ...

  6. C语言 百炼成钢1

    //题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> ...

  7. C语言 百炼成钢18

    //题目52:用递归打印以下图形 //* //*.*. //*..*..*.. //*...*...*...*... //*....*....*....*....*.... #include<s ...

  8. C语言 百炼成钢16

    //题目46:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只 //猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了 //一个,它同样把 ...

  9. C语言 百炼成钢15

    //题目43:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出 //圈子,问最后留下的是原来第几号的那位. #include<stdio.h> #inclu ...

随机推荐

  1. [Algorithm] Find Nth smallest value from Array

    Q1: Find the smallest value from array: function findMin(arr) { let min = arr[0]; for (let i = 1; i ...

  2. xcode arc 下使用 block警告 Capturing [an object] strongly in this block is likely to lead to a retain cycle” in ARC-enabled code

    xcode arc 下使用 block警告 Capturing [an object] strongly in this block is likely to lead to a retain cyc ...

  3. 如何让你的webapp也能跳窗口搜索

    目前很多手机app或者一些webapp,搜索栏基本采用跳窗口的搜索方式 怎么做 实现方式: 1.在触发外层的input的时候打开个modal层,默认打开该modal层的时候就触发了moda里面的inp ...

  4. js 终止 for 循环

    1.break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句. 2.for循环如果是多层循环 可以将循环命名,跳出指定的循环. first://需要将循环命名 for(var ...

  5. H5 Canvas | 画布中变量作用域与setInterval方法同步执行探究

    Demo - 随机绘制圆环 实现思路: 将一个圆环的绘制分成100份,setInterval()方法定义每隔时间n绘制一段新的,每份的开始路径都是上一次的结束路径,实现步进绘制. 通过Math.ran ...

  6. DDL语句--改动表

    改动表是指改动数据库中已经存在的表的定义.改动表比又一次定义表简单.不须要又一次载入数据.也不会影响正在进行的服务. MySQL中通过ALTER TABLE语句来改动表.改动表包含改动表名.改动字段数 ...

  7. Timer使用

    1. Timer简介 Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次. 通过创建Timer对象,然后调用Time ...

  8. 自己Cookie写的自动登录功能 包含BASE64 和MD5的使用

    sql表 username  password字段 User类 有 id username password等字段 Service有一函数 @Override public User findUser ...

  9. 自闭合标签-主动闭合标签-meta-link标签

    <!DOCTYPE html><!--规定标准的html--><!--一个页在只有一对html标签--><!--标签的属性 指定英文--><htm ...

  10. Json数组操作小记 及 JSON对象和字符串之间的相互转换

    [{"productid":"1","sortindex":"2"},{"productid":&q ...