135-1821-9792

c语言程序字符串替换函数 c语言字符串替换指定字符

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

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

成都网站建设哪家好,找创新互联!专注于网页设计、网站建设公司、微信开发、小程序设计、集团成都定制网页设计等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都公路钻孔机等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞美!

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语言中字符串的替换如何实现的!

1、首先输入代码:

#include string.h

#include stdio.h

/**

* 参数:

* originalString[] :原始字符串

* key[] : 待替换的字符串

* swap[] : 新字符串

*/

void replace(char originalString[], char key[], char swap[]){

int lengthOfOriginalString, lengthOfKey, lengthOfSwap, i, j , flag;

char tmp[1000];

2、然后输入:

//获取各个字符串的长度

lengthOfOriginalString = strlen(originalString);

lengthOfKey = strlen(key);

lengthOfSwap = strlen(swap);

for( i = 0; i = lengthOfOriginalString - lengthOfKey; i++){

flag = 1;

//搜索key

for(j  = 0; j lengthOfKey; j ++){

if(originalString[i + j] != key[j]){

flag = 0;

break;

}

}

3、然后输入:

//如果搜索成功,则进行替换

if(flag){

strcpy(tmp, originalString);

strcpy(tmp[i], swap);

strcpy(tmp[i + lengthOfSwap], originalString[i  + lengthOfKey]);

strcpy(originalString, tmp);

i += lengthOfSwap - 1;

lengthOfOriginalString = strlen(originalString);

}

}

}

4、然后输入:

/**

* main function

*/

int main(){

char originalString[1000] = {"abcfffffabcfffffabcfffff"};

char key[] = {"abc"};

char swap[] = {"aabbcc"};

replace(originalString, key, swap);

printf("%s\n", originalString);

return 0;

}

5、这样就完成了。

c语言:如何将字符串中指定的字符替换为另一个指定字符

/*功能:将str字符串中的oldstr字符串替换为newstr字符串

*参数:str:操作目标oldstr:被替换者newstr:替换者

*返回值:返回替换之后的字符串

*版本:V0.2

*/

char*strrpc(char*str,char*oldstr,char*newstr){

char bstr[strlen(str)];//转换缓冲区

memset(bstr,0,sizeof(bstr));

for(int i=0;ilt;strlen(str);i++){

if(!strncmp(str+i,oldstr,strlen(oldstr))){//查找目标字符串

strcat(bstr,newstr);

i+=strlen(oldstr)-1;

}else{

strncat(bstr,str+i,1);//保存一字节进缓冲区

}

}

strcpy(str,bstr);

return str;

}

扩展资料:

c_str函数的返回值是constchar*的,不能直接赋值给char*,所以就需要我们进行相应的操作转化,下面就是这一转化过程。

c++语言提供了两种字符串实现,其中较原始的一种只是字符串的c语言实现。与C语言的其他部分一样,它在c++的所有实现中可用,我们将这种实现提供的字符串对象,归为c-串,每个c-串char*类型的。

标准头文件lt;cstringgt;包含操作c-串的函数库。这些库函数表达了我们希望使用的几乎每种字符串操作。

当调用库函数,客户程序提供的是string类型参数,而库函数内部实现用的是c-串,因此需要将string对象,转化为char*对象,而c_str()提供了这样一种方法,它返回const char*类型(可读不可改)的指向字符数组的指针。例:

#includelt;iostreamgt;

//#includelt;cstringgt;

#includelt;stringgt;//使用头文件string,否则最后coutlt;lt;无法输出add_to

using namespace std;

int main()

{

string add_to="hello!";

const string add_on="baby";

const char*cfirst=add_to.c_str();

const char*csecond=add_on.c_str();

char*copy=new char[strlen(cfirst)+strlen(csecond)+1];

strcpy(copy,cfirst);

strcat(copy,csecond);

add_to=copy;

coutlt;lt;"copy:"lt;lt;copylt;lt;endl;

delete[]copy;

coutlt;lt;"add_to:"lt;lt;add_tolt;lt;endl;

return 0;

}

例(1)

函数声明:const char*c_str();

c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同.

这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string对象转换成c中的字符串样式。

注意:一定要使用strcpy()函数等来操作方法c_str()返回的指针

比如:最好不要这样:

char*c;

string s="1234";

c=s.c_str();

//c最后指向的内容是垃圾,因为s对象被析构,其内容被处理(纠正:s对象的析构是在s的生命周期结束时,例如函数的返回)

参考资料:

百度百科——c_str


网站标题:c语言程序字符串替换函数 c语言字符串替换指定字符
文章出自:http://kswsj.com/article/ddcpcpd.html

其他资讯



Copyright © 2009-2022 www.kswsj.com 成都快上网科技有限公司 版权所有 蜀ICP备19037934号