C语言 百炼成钢25
/*
题目61:编写一个名为removestring的函数,该函数用于从一个字符串中删除一定量的字符。
该函数接受三个参数:
第1参数代表源字符串
第2参数代表需要删除字符的起始位置(位置从0开始)
第3参数代表需要删除的字符个数。
eg:字符串"abcd12345efg"
removestring(text, 4, 5);
则会删除该字符数组中的字符串wrong以及后面的空格。遗留内容则是字符串abcdefg"。 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h> int removestring(char *pstr/*in*/, int begin, int num,char **pout/*out*/){
int ERRO_MSG = ;
if (pstr == NULL || pout==NULL)
{
ERRO_MSG = ;
printf("pstr == NULL || pout==NULL 传入参数不可以为空 erro msg:%d\n", ERRO_MSG);
return ERRO_MSG;
}
//定义临时变量接受参数
char *pin = pstr;
//分配返回内存
char *res = (char *)malloc(sizeof(char)* );
int index = ,numx=;
while (*pin != '\0'){
if (index >= begin&&index <(begin+num))
{
pin++;
index++;
continue;
}
res[numx] = *pin;
//指针后移一位
pin++;
index++;
numx++;
}
res[numx] = '\0';
*pout = res;
return ERRO_MSG;
} int freestring(char **pin/*in*/){
int ERRO_MSG = ;
if (pin==NULL)
{
ERRO_MSG = ;
printf("pin==NULL 传入参数不可以为空 erro msg:%d\n", ERRO_MSG);
return ERRO_MSG;
}
if (*pin!=NULL)
{
free(*pin);
*pin = NULL;
}
return ERRO_MSG;
} void main(){
char str[]="abcd12345efg";
int ret = ;
//接收返回字符串
char *str2 = NULL;
ret = removestring(str, , , &str2);
if (ret!=)
{
printf("删除指定字符失败!");
}
//打印处理之后的字符
printf(str2);
printf("\n");
//释放内存
freestring(&str2);
system("pause");
}

C语言 百炼成钢25的更多相关文章
- C语言 百炼成钢19
/* 题目55: 有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串, ...
- 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语言 百炼成钢17
//题目49:老师将糖果分成若干份,让学生按任意次序领取,第一个领取的,得到1份加上剩余糖果的1/10, //第二个领取的,得到2份加上剩余糖果的1/10,第三个领取的,得到3份加上剩余糖果的1/10 ...
- C语言 百炼成钢16
//题目46:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只 //猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了 //一个,它同样把 ...
- C语言 百炼成钢15
//题目43:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出 //圈子,问最后留下的是原来第几号的那位. #include<stdio.h> #inclu ...
随机推荐
- Mapper not initialized. Call Initialize with appropriate configuration.
System.InvalidOperationException:“Mapper not initialized. Call Initialize with appropriate configura ...
- zabbix乱码问题
Zabbix页面遇到历史记录的乱码需要修改数据库: 解决办法: 1.将 zabbix 数据库中的表备份: 2.手动删除 zabbix 数据库: 3.重新创建 zabbix 库时手动指定字符集为 utf ...
- C++ new的nothrow关键字和new_handler用法
C++ new的nothrow关键字和new_handler用法 new && new(std::nothrow) new(std::nothrow) 顾名思义,即不抛出异常,当new ...
- json.parse()使用过程中,肯能会出现的问题(Excel表中数据也存在类似问题)
如果使用json.parse()报如下的错误, Js错误: Jsp页面的显示的错误: 经分析显示:是由于某个字段的值存在换行符造成的 解决方案:只需要将存在换行符的字段重新编辑,使其不存在换行符即可. ...
- centos vim 7.3 升级 + vim 简单配置文件
CentOS5自带VIM为2006年的7.0版本,现在很多插件都是针对7.3开发的,决定编译升级VIM7.3版. 编译安装VIM7.3: cd /usr/local/src/ wget ftp://f ...
- github 管理图示
- CentOS安装glibc-2.14(转)
到http://ftp.gnu.org/gnu/glibc/下载glibc-2.14.tar.xz tar glibc-2.14.tar.gz cd glibc-2.14 mkdir build cd ...
- 【Datastage】导出的dsx文件如何统计导出作业个数
我们在日常使用ds时候,会将很多ds打包导出,例如:有100个作业,现在我们打包导出,但是导出之后如何确认我们是否已经完全导出,会不会在导出的时候漏了一个作业呢? 不用怕! 我们使用编辑打开导出的ds ...
- Hibernate 第一个体验程序
首先要导入包,将下载的hibernate所有required包导入,将下载的hibernate用来写log的slf4j的api和nopjar包导入,将下载的mysql链接引擎jar包导入. 然后新建j ...
- String、StringBuilder、StringBuffer对比
参考:http://swiftlet.net/archives/1694 http://www.cnblogs.com/springcsc/archive/2009/12/03/1616326.htm ...