热门 购物 团购 理财 文学 人才 体育 汽车 游戏 软件 军事 音乐 视频 媒体 论坛 博客 银行 交友 综合
一起购 唯品会 梦芭莎 趣玩网 凡客诚品 麦考林 乐淘鞋网 弗克尚品 绿盒子 俏物悄语 新蛋网 当当网 玛萨玛索
拉手网 糯米网 爱帮团 聚划算 58团购 美团网 QQ团购 大众点评团 窝窝团 美淘网 满座网 团宝网 饭统饭团
起点网 榕树下 小说阅读 潇湘书院 红袖添香 幻剑书盟 新浪游戏 太平洋游戏 163邮箱 中国游戏 游戏中国 霏凡软件 铁血军事
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 :
普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。 最简单的正则表达式是一个单独的普通字符…  Details
为了使不同的字符集能够处理好不同的文字和语言,必须满足:1. 不同时引用多种文字。 2. 不与使用不同字符集的人交换文件。 由于Mac和PC机都使用不同的字符集,越来越多的人无…  Details
/** * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解 * * 模块: trim.c * 简述: 去除字符串的…  Details
// // StrReplace.java // package forum; import java.util.*;/** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: * @author * @version 1.0 */public class StrReplace {public StrReplace() { } public String str_replace(Strin…  Details
我们有时候可能会有这样的要求,如果我们输入了一段带有链接的文字,如:“ 今天,我访问了中央电视台的网站:http://www.cctv.com ”那么,我们希望能自动为我们的“http://www.cctv.com”这几个…  Details
摘要:大多数 Active Server Pages (ASP) 应用程序都要通过字符串连接来创建呈现给用户的 HTML 格式的数据。本文对几种创建此 HTML 数据流的方法进行了比较,在特定情况下,某些方法在性能方面…  Details
作者: lzppcc 点击链接查看作者详细信息 <% '-----将一串字符中指定位置的值替换为你所要的值 dim my_eng,id_len,k,kk,op_acount,my_pop_id,chang_eng my_eng="0000000000000000" '要替换的…  Details
/** * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解 * * 模块: explode.c * 简述: 使用一个字…  Details
正则表达式中的特殊字符: 字符 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。 例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该…  Details
句点 (.) 匹配一个字符串中任何单个的打印或非打印字符,除了换行符 () 之外。下面的 JScript 正则表达式可以匹配 'aac'、'abc'、'acc'、'adc'如此等等,同样也可以匹配 'a1c'、'a2c'、a-c'以及 a#c'…  Details