c 语言 字符串 替换,将字符串中的字符替换成指定字符c

#include

#include

#include

//把source字符串里所有s1字符全部替换成字符s2void replace_char(char *result, char *source, char s1, char s2)

{

int i = 0;

char *q = NULL;

q = source;

for(i=0; i

{

if(q[i] == s1)

{

q[i] = s2;

}

}

strcpy(result, q);

}

void replace_string(char *result, char *source, char* s1, char *s2)

{

char *q=NULL;

char *p=NULL;

p=source;

while((q=strstr(p, s1))!=NULL)

{

strncpy(result, p, q-p);

result[q-p]= '\0';//very important, must attention!

strcat(result, s2);

strcat(result, q+strlen(s1));

strcpy(p,result);

}

strcpy(result, p);

}

void main()

{

char url[64] = "ad12 fdf5 d12f dfd12 dfp";

char result[64] = {0};

replace_char(result, url, ' ', '_' );//把url里所有‘ ’字符替换成'_'字符,结果存在result中

printf("char final result=%s\n",result);

memset(result, 0, sizeof(result));

replace_string(result, url, "12", "@@@");//把url里所有“12”字符串替换成“@@@”字符串

printf("string final result=%s\n", result);

}

分别单独运行的结果如下:

测试结果:char final result=ad12_fdf5_d12f_dfd12_dfp

测试结果:string:final result=ad@@@ fdf5 d@@@f dfd@@@ dfp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值