将字符串内的特定的字符或字符串替换成另一个字符或字符串(纯C)

C代码和网页交互的时候,有些字符串的显示会有问题

比如在网页文本框里显示&、< >等

发给网页的字符串就要转换成   &#38;    &lt; &gt; 各种转换码可参考http://liuxufei.com/weblog/jishu/71.html

这就需要代码里把原有的字符串check,进行各种替换

往上有相关代码,不过都有各种问题,只能自己写

这份基本试用,可借鉴


//把source字符串里所有s1字符全部替换成字符s2

void replace_string(char *result, char *source, char* s1, char *s2)
{
    int i = 0;
    int j = 0;
    char *q=NULL;
    char *p=NULL;
    char *s = NULL;
   
    p=source;
    
    while(1)
    {
        s=source;
        for(j=0;j<=i;j++)
        {
            q=strstr(s, s1);
            if (NULL==q) return 0;
            if (j == i)
            {
                break;
            }
            s=q+strlen(s1);
        }
        strncpy(result, p, q-p);
        result[q-p]= '\0';//very important, must attention!
        strcat(result, s2);
        strcat(result, q+strlen(s1));
        strcpy(p,result);
        i++;
    }
    strcpy(result, p);    
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值