热门 购物 团购 理财 文学 人才 体育 汽车 游戏 软件 军事 音乐 视频 媒体 论坛 博客 银行 交友 综合
一起购 唯品会 梦芭莎 趣玩网 凡客诚品 麦考林 乐淘鞋网 弗克尚品 绿盒子 俏物悄语 新蛋网 当当网 玛萨玛索
拉手网 糯米网 爱帮团 聚划算 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
/**
 * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权
 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解
 *
 * 模块: strcut.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>

/**
 * 获取字符串的子串
 *
 * @param haystack 原始字符串
 * @param start 如果是正数则从开始位置截取,如果是负数,返回的字符串将从haystack结尾处向前数第start个字符开始
 * @param length 如果是正数返回的字符串将从start处开始最多包括length个字符,如果是负数删除length个字符
 * @param outstr 输出字符串
 * @return 输出字符串
 */
char *substr(char *haystack, int start, int length, char *outstr)
{
    if (haystack == NULL)
    {
        return haystack;
    }

    int cut_len = length;
    int haystack_len = strlen(haystack);

    /*如果开始位置小于0则从后取*/
    if (start < 0)
    {
        start = haystack_len + start;
    }

    /*判断截取长度是否过界,过界则截取总长度-开始位置*/
    if (length <= 0 || length + start > haystack_len)
    {
        cut_len = haystack_len - start;
    }

    strncpy(outstr, &haystack[start], cut_len);
    cut_len = (length < 0) ? cut_len + length : cut_len;
    outstr[cut_len] = '';

    return outstr;
}

/**
 * 获取字符串的子串
 *
 * @param haystack 原始字符串
 * @param start 如果是正数则从开始位置截取,如果是负数,返回的字符串将从haystack结尾处向前数第start个字符开始
 * @param length 如果是正数返回的字符串将从start处开始最多包括length个字符,如果是负数删除length个字符
 * @return 裁切haystack字符串输出
 */
char *strcut(char *haystack, int start, int length)
{
    if (haystack == NULL)
    {
        return haystack;
    }

    int cut_len = length;
    int haystack_len = strlen(haystack);

    /*如果开始位置小于0则从后取*/
    if (start < 0)
    {
        start = haystack_len + start;
    }

    /*判断截取长度是否过界,过界则截取总长度-开始位置*/
    if (length <= 0 || length + start > haystack_len)
    {
        cut_len = haystack_len - start;
    }

    strncpy(haystack, &haystack[start], cut_len);
    cut_len = (length < 0) ? cut_len + length : cut_len;
    haystack[cut_len] = '';

    return haystack;
}

int main(void)
{
    char needle[] = "name";
    char haystack[] = "my name is zhang woods";
    printf("strpos position is:%s ", substr(haystack, 0, -5, haystack));
    printf("strpos position is:%s ", strcut(haystack, -5, -2));

    return 0;
}
Reply content :
Photo link :
'组合查询之核心:拼接字符串 '功能:定义查询条件,定义返回集,定义排序方式 '平台:Windows 2000 Server + IIS5.0 + SQL Server 2000 '语言:VBScript '作者:Cheery_Ke '***********Start************ '********…  Details
普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。 最简单的正则表达式是一个单独的普通字符…  Details
“变量”是计算机内存中已命名的存储位置,它包含数据,如数值或文本字符串。变量中包含的数据称为变量的“值”。变量使用有助于理解脚本功能的名称来存储、检索和管理值。 声明和…  Details
为了使不同的字符集能够处理好不同的文字和语言,必须满足:1. 不同时引用多种文字。 2. 不与使用不同字符集的人交换文件。 由于Mac和PC机都使用不同的字符集,越来越多的人无…  Details
php判断字符串是什么编码<?phpfunction is_utf8($wstr)//判断是否为UTF8不是则转换成UTF8{    if ($wstr === mb_convert_encoding(mb_convert_encoding($wstr, "UTF-32", "UTF-8"),…  Details
大部分现代人类语言都有各自的书写形式。用于书写一种语言的字符集称为一种文字。文字可以是语音字母表,也可以不是。例如,汉语、日语和韩语由能够表示整个词汇的表意文字字符组…  Details
rem 显示左边的n个字符(自动识别汉字) Function LeftTrue(str,n)If len(str)<=n/2 Then LeftTrue=str Else Dim TStr Dim l,t,c Dim i l=len(str) t=l TStr="" t=0 for i=1 to l c=asc(mid(str,i,1)) If c<0 then c=c+65536 …  Details
fo:character格式化对象使用输出文档中的不同字符来代替输入文档中特定字符或字符串。例如,可以使用此对象在美语小数点与法语小数逗号之间相互转换。character特性指定使用什么字符来替…  Details
as3中使用字符串调用函数。大家都知道,主场景中的某个影片剪辑mm0,可以通过this["mm"+0]去访问。是不是可以通过字符串去调用函数呢?答案是肯定的,var myfunc:String = "functio…  Details
摘要:大多数 Active Server Pages (ASP) 应用程序都要通过字符串连接来创建呈现给用户的 HTML 格式的数据。本文对几种创建此 HTML 数据流的方法进行了比较,在特定情况下,某些方法在性能方面…  Details