代码改变世界

找到特定串在源字符串中的位置

2013-07-24 16:44  夏洛克·福尔摩斯  阅读(295)  评论(0编辑  收藏  举报

/************************************************
* 函 数 名: find_str
* 函数功能:
* 找到特定串在源字符串中的位置
* 作 者: sunlian
* 完成时间: 2009年8月30日
*
* 参 数:
* 输 入:
* src 源字符串
* mode 需要查找的子字符串
* 输 出:
* -2 异常,失败
* -1 没有找到
* >0 子串在目标串中的起始位置
*************************************************/

int find_str( char *src, char *mode)
{
    int len=0;
    int mode_len=0;
    int start=0;
    int step=0;
    int i=0;
    int ret=-1;
    if(src == NULL || mode == NULL)
    {
        return -2;
    }

    len=strlen(src);
    mode_len=strlen(mode);

    if( len == 0 || mode_len ==0 || len < mode_len )
    {
        return -2;
    }

    start=0;

    while( start + mode_len <= len)
    {
        for( i=0; i < mode_len ; i++)
        {
            if( src[start + i] != mode[i])
            {
                break;
            }
        }
        if( i == mode_len)
        {
            ret=start;
            break;
        }
        start++;
    }

    return ret;
}