重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言中字符串替换函数 c语言字符串字符替换

C语言字符串替换

C语言实现字符串替换函数:

为汉寿等地区用户提供了全套网页设计制作服务,及汉寿网站建设行业解决方案。主营业务为网站设计制作、做网站、汉寿网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

#include stdio.h

#include stdlib.h

#include ctype.h

#include string.h

//字符串替换函数

/********************************************************************

* Function: my_strstr()

* Description: 在一个字符串中查找一个子串;

* Input: ps: 源; pd:子串

* Return : 0:源字符串中没有子串; 1:源字符串中有子串;

*********************************************************************/

char * my_strstr(char * ps,char *pd)

{

char *pt = pd;

int c = 0;

while(*ps != '\0')

{

if(*ps == *pd)

{

while(*ps == *pd *pd!='\0')

{

ps++;

pd++;

c++;

}

}else

{

ps++;

}

if(*pd == '\0')

{

return (ps - c);

}

c = 0;

pd = pt;

}

return 0;

}

/********************************************************************

* Function: memcpy()

* Description: 复制一个内存区域到另一个区域;

* Input: src: 源;

count: 复制字节数.

* Output: dest: 复制目的地;

* Return : dest;

*********************************************************************/

void * memcpy(void * dest,const void *src,size_t count)

{

char *tmp = (char *) dest, *s = (char *) src;

while (count--)

*tmp++ = *s++;

return dest;

}

/********************************************************************

* Function: str_replace()

* Description: 在一个字符串中查找一个子串,并且把所有符合的子串用

另一个替换字符串替换。

* Input: p_source:要查找的母字符串; p_seach要查找的子字符串;

p_repstr:替换的字符串;

* Output: p_result:存放结果;

* Return : 返回替换成功的子串数量;

* Others: p_result要足够大的空间存放结果,所以输入参数都要以\0结束;

*********************************************************************/

int str_replace(char *p_result,char* p_source,char* p_seach,char *p_repstr)

{

int c = 0;

int repstr_leng = 0;

int searchstr_leng = 0;

char *p1;

char *presult = p_result;

char *psource = p_source;

char *prep = p_repstr;

char *pseach = p_seach;

int nLen = 0;

repstr_leng = strlen(prep);

searchstr_leng = strlen(pseach);

do{

p1 = my_strstr(psource,p_seach);

if (p1 == 0)

{

strcpy(presult,psource);

return c;

}

c++; //匹配子串计数加1;

printf("结果:%s\r\n",p_result);

printf("源字符:%s\r\n",p_source);

// 拷贝上一个替换点和下一个替换点中间的字符串

nLen = p1 - psource;

memcpy(presult, psource, nLen);

// 拷贝需要替换的字符串

memcpy(presult + nLen,p_repstr,repstr_leng);

psource = p1 + searchstr_leng;

presult = presult + nLen + repstr_leng;

}while(p1);

return c;

}

#define MAX 200

int main(void)

{

int i = 0;

char s[MAX] ={0}; //存放源字串

char s1[MAX]={0}; //存放子字串

char s2[MAX]={0}; //存放替换字串

char result_a[2000] = {0};//存放替换结果;

char *p,*ptm,*pr;

puts("Please input the string for s:");

scanf("%s",s);

puts("Please input the string for s1:");

scanf("%s",s1);

puts("Please input the string for s2:");

scanf("%s",s2);

ptm = s;

pr = result_a;

i = str_replace(pr,ptm,s1,s2);

printf("替换%d个子字符串;\r\n",i);

printf("替换后结果:%s\r\n",result_a);

system("pause");

}

在 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语言运用函数替换字符串中的数字求助大佬

#include stdio.h

#define N 80

/* 请在这里填写答案 */

void f(char *c,char a)

{

for(;*c;c++)

  if(*c='0'*c='9')

      *c=a;

}

int main(void)

{

char c[N], a;

gets(c);

scanf("%c", a);

f(c, a);

printf("%s", c);

return 0;

}

求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语言中字符串替换函数 c语言字符串字符替换
文章地址:http://cqcxhl.com/article/hhojsi.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP