成都创新互联网站制作重庆分公司

c语言bzero函数 c语言comb函数

求C语言替换字符串中某个字符的函数

1、C语言中没有提供字符串替换函数,网上能找到的类似函数也只是能替换一个,不能替换全部,工作中却常常要用到这个功能,故实现一个函数。该函数所使用到的相关函数均是自己实现,没有调用库函数。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站制作、惠山网络推广、成都小程序开发、惠山网络营销、惠山企业策划、惠山品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供惠山建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

2、函数代码如下:

/*descript:replace str,返回一个替换以后的字符串,用完之后要free()

success:return 1

error:return 0

BUG:"select * from tab where id=':a' and name =':aa'",this is not support,this function is just simple str_replace ,not support all SQL language

*/

char *replacestr(char *strbuf, char *sstr, char *dstr)

{       char *p,*p1;

int len;

if ((strbuf == NULL)||(sstr == NULL)||(dstr == NULL))

return NULL;

p = strstr(strbuf, sstr);       //返回字符串第一次出现的地址,否则返回NULL

if (p == NULL)  /*not found*/

return NULL;

len = strlen(strbuf) + strlen(dstr) - strlen(sstr);

p1 = malloc(len);

bzero(p1, len);

strncpy(p1, strbuf, p-strbuf);

strcat(p1, dstr);

p += strlen(sstr);

strcat(p1, p);

return p1;

}

c语言 关于字符数组和整型数组清零

C语言数组和整型数组清空方法,示例:

1、整数数组清零

函数:void bzero(void *s, int n)

头文件: #include string.h

功能说明:将字符串s的前n个字符置为0,一般n取sizeof(s),将整块空间清零;

举例:char str[10];    bzero(str, sizeof(str));      也可以将整个结构体清零;

2、数组清空

使用时间:94s

for( k = 0 ; k 10000 ; k++ )

for( i = 0 ; iMAX; i++ )

for( j = 0;j MAX; j++ )

a[i][j] = 0;

扩展资料

C语言结构体初始化

1、定义:

struct InitMember

{

int first;

double second;

char* third;

float four;

};

2、定义时赋值:

struct InitMember test = {-10,3.141590,"method one",0.25};

C语言 bzero和memset有什么区别?

bzero\x0d\x0a原型:extern void bzero(void *s, int n);用法:#include 功能:置字节字符串s的前n个字节为零且包括‘\0’。说明:bzero无返回值,并且使用strings.h头文件,strings.h曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐使用。在POSIX.1-2008标准里已经没有这些函数了。推荐使用memset替代bzero。\x0d\x0a \x0d\x0avoid *memset(void *s, int ch, size_t n);函数解释:将s中前n个字节替换为ch并返回s;memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。常见的三种错误第一: 搞反了ch 和 n的位置.一定要记住 如果要把一个char a[20]清零, 一定是 memset(a, 0, 20)而不是 memset(a, 20, 0)第二: 过度使用memset, 我想这些程序员可能有某种心理阴影, 他们惧怕未经初始化的内存, 所以他们会写出这样的代码:char buffer[20];memset(buffer, 0, sizeof((char)*20));strcpy(buffer, "123");这里的memset是多余的. 因为这块内存马上就被覆盖了, 清零没有意义.第三: 其实这个错误严格来讲不能算用错memset, 但是它经常在使用memset的场合出现\x0d\x0a \x0d\x0a关于字符数组的初始化,在项目的压力测试中,发现性能明显下降,变怀疑在程序中的若干临时字符数组的初始化(使用bzero)身上。于是修改为首个字符置零的方式而非全部置零的方式初始化,响应得到明显的提升。原来在mp3检索的每一条结果都要进行bzero对临时数组初始化,每一个请求需要30次的bzero对临时数组的置零。于是想到了,在非必要的情况下,只对临时数组的第一个(或前几个)字符置零的初始化方式对比与使用bzero的话,能够明显提高性能。


网站栏目:c语言bzero函数 c语言comb函数
URL地址:http://cxhlcq.com/article/ddehjos.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部