热门 购物 团购 理财 文学 人才 体育 汽车 游戏 软件 军事 音乐 视频 媒体 论坛 博客 银行 交友 综合
一起购 唯品会 梦芭莎 趣玩网 凡客诚品 麦考林 乐淘鞋网 弗克尚品 绿盒子 俏物悄语 新蛋网 当当网 玛萨玛索
拉手网 糯米网 爱帮团 聚划算 58团购 美团网 QQ团购 大众点评团 窝窝团 美淘网 满座网 团宝网 饭统饭团
起点网 榕树下 小说阅读 潇湘书院 红袖添香 幻剑书盟 新浪游戏 太平洋游戏 163邮箱 中国游戏 游戏中国 霏凡软件 铁血军事
访问本站赠送红包啦!凡在支付宝搜索数字口令 528131323 都将获得红包,天天搜索此口令天天得红包^_^
Health Sitology Family Finance Appliances Shopping Clothing Education Legal Rituals Beauty Property Travel Pet Medical Cyclopedia History Military Computers Sports Job Anecdote Geographic Mixed Entertain Literature Emotion Agriculture
/**
 * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权
 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解
 *
 * 模块: strdel.c
 * 简述: 根据指定位置插入字符串 根据指定位置删除字符串 搜索字符串并删除搜索到的内容
 * 作者: woods zhang  ->  hoojar@163.com -> http://www.hecart.com/
 * 版权: 2006-2018, 张树林 拥有此源码所有版权 (MIT许可协议)
 * Copyright 2006-2018, Woods Zhang All Rights Reserved (The MIT License)
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

/**
 * 根据指定位置插入字符串
 *
 * @param haystack 原始字符串
 * @param pstr 要插入的字符串
 * @param pos 要插入的位置
 * @return 插入成功后的字符串
 */
char *str_insert(char *haystack, char *pstr, int pos)
{
    char *ret = haystack;
    if (haystack != NULL && pstr != NULL)
    {
        int i, n;
        int len = strlen(haystack);
        int nlen = strlen(pstr);
        for (i = len - 1; i >= pos; --i)
        {
            *(haystack + i + nlen) = *(haystack + i);
        }

        for (n = 0; n < nlen; n++)
        {
            *(haystack + pos + n) = *pstr++;
        }

        *(haystack + len + nlen) = 0;
    }

    return ret;
}

/**
 * 根据指定位置删除字符串
 *
 * @param haystack 原始字符串
 * @param spos 开始位置
 * @param epos 结束位置
 * @return 删除后的字符串
 */
char *str_delete(char *haystack, int spos, int epos)
{
    if (haystack == NULL)
    {
        return haystack;
    }

    int len = strlen(haystack);
    if (spos < len)
    {
        epos = (epos <= len) ? epos : len;
        memmove(haystack + spos, haystack + epos, len - epos);
        haystack[len - (epos - spos)] = 0;
    }

    return haystack;
}

/**
 * 搜索字符串并删除搜索到的内容(最长搜索100个字节)
 *
 * @param haystack 原始字符串
 * @param rstr 要删除的字符串内容
 * @return 删除后的字符串
 */
char *str_remove(char *haystack, const char *rstr)
{
    if (haystack == NULL)
    {
        return haystack;
    }

    char *p = haystack, *q, *c, d[100];
    unsigned long n = strlen(rstr);
    while (1)
    {
        q = strstr(p, rstr);
        if (q == NULL)
        {
            break;
        }

        c = q + n;
        *q = '';
        strcpy(d, c);
        p = strcat(p, d);
    }

    return haystack;
}

int main(void)
{
    char haystack[] = "my name is woods zhang";
    printf("str_insert:%s ", str_insert(haystack, " zhang ", 11));
    printf("str_remove:%s ", str_remove(haystack, " zhang "));
    printf("str_delete:%s ", str_delete(haystack, 11, 17));
    return 0;
}
Reply content :
Photo link :
每年入秋都是家装企业赢利的旺季,但今年秋天北京家装业却纷纷打出降价牌。北京数十家家装公司最近联合宣布集体降价,最高折扣已过6.5折。业内专家在接受记者…  Details
如果老婆曾经被人睡过,还居然当作什么事都没发生过,这还是男人吗?即使是结婚了,生出来的孩子都肯定不是自己正宗的,老婆的子宫已经被其他人的精子污染了.科学依据如下:…  Details
随着水温的日趋升高,各种鱼苗种陆续下放,鱼类的生产季节已经开始。如何做好病害防预工作成了养殖户获得较好经济效益的重中之重。现结合鱼病常见的传播途径,简单介绍如何做好…  Details
怎样根据具体环境选择内线的不同敷设方式?在大多数情况下,内线都采用电压不低于500伏的绝缘导线。绝缘导线的敷设分明敷和暗敷两种。明敷是导线敷设于墙壁、桁架或天花板等处的表面…  Details
上周四,在北京大学生就业之家举办的金融招聘会现场,就业指导专家成了招聘会的香饽饽,三位就业指导专家被参会的应聘者围得里三层外三层。很多来找工作的学生,干脆把自己的简历…  Details
怎样根据年龄选择服饰 服饰对年青人是格外恩惠的,几乎没有什么禁忌。但少女应尽量避免穿过于华丽的服装,如闪光面料制作的,或缀有过多装饰品的服装,因为这会使少女失去清新、纯…  Details
当一个人被诊断出患有癌症时,他本人及他的家人都会为这个消息所震惊和绝望。他们需要尽快地得到事实真相,尤其是关于癌症病情的详细情况,包括诊断、治疗、临床研究等…  Details
出外旅行是一桩于身心有益的好事,如果因为事先未根据自己的健康状况选择相宜的时机和地点而弄得旧病复发,中途折返就医,那就得不偿失了。 春天,阳光明媚,鲜花盛开…  Details
宝宝4个月起,辅食就要担负起宝宝成长的大梁了。能吃的东西倒是有很多,可是哪些是适合宝宝吃的?什么时候吃?这些都是大问题。每个阶段宝宝所需要的营养成分不同,消化机能也不同…  Details
在这个温馨的季节,给自己的新娘送上一枚钻戒,代表坚贞的誓言,代表坚定的信念,已经不再是那么重要,重要的是,这一份美丽真真正正属于你的新娘。 钻石戒指往往作…  Details