替换子字符串(将字符串中的某个子字符串替换为给定的字符串)

本文介绍了一个C语言程序,该程序能够实现字符串中子串的替换,并统计替换次数。通过使用标准C库函数如strcmp()、memcpy()等,该程序实现了在源字符串中找到指定子串并用另一个字符串替换的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>


int replace_sub_str(const char *str,const char *substr,char *repstr,char *result)
{

    const char *p,*q,*re,*temp1;
    //char *q;
    char *temp,*t;
    int n,count = 0,m,i;
    p = str;
    q = substr;
    re = repstr;
    n = strlen(q);
    m = strlen(re);
    temp = (char*)malloc(n+1);

    memset(temp,0x00,n+1);

t = result;

    while(*p)
    {
        memcpy(temp,p,n);

        if(strcmp(temp,q)==0)
        {
            count++;
            memset(temp,0x00,n+1);
            p = p + n;

            temp1 = repstr;
            for(i = 0;i<m;i++)
            {

                *t = *temp1;
                t++;
                temp1++;
            }
        }
        else
        {
            *t = *p;
            p++;
            t++;
            memset(temp,0x00,n+1);
        }
    }

    free(temp);
    return count;

}

int main()
{
    char s[100] = {'\0'};
    int num = replace_sub_str("123abc12de234fg1hi34j123k","123","4",s);
    printf("The number of sub_str is %d\r\n",num);
    printf("The result string is %s\r\n",s);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值