查找字符串中指定的子串的首次出现的位置
来源:互联网 发布:嘉艺发型设计软件 编辑:程序博客网 时间:2024/05/17 03:48
/* *!============================================================== *! FNAME: SubStr.cpp *! BRIEF: *! AUTHR: RollStone *! EMAIL: jealdean@outlook.com *! VERNO: 1.0.9 *! CREAT: 2015-05-05 19:19:59 *! CHGON: 2015-05-05 22:04:12 *! *! Copyright (c) 2015 All Rights Reserved By Abodu Org *!============================================================== */#include <iostream>#include <string.h>#include <stdio.h>using namespace std;/** * @brief * * @param str[] * @param substr[] * * @return * if not str or not substr return -1 * index of substr in str */int GetSubstrFirstIndex(char str[], char substr[]) { char* pCur=NULL,*q=NULL; if(!str||!substr||!(pCur=strchr(str,substr[0]))) { return -1; } while(pCur) { if(!strncmp(pCur,substr,strlen(substr))) { return (int)(pCur-str); } q=pCur+1; if(!q) { break; } pCur=strchr(q,substr[0]); } return -1;}int main() { char sd[]="One two three two four two five"; int n=GetSubstrFirstIndex(sd,"two"); cout<<"Found the first substring :"<<(sd+n)<<endl; return 0;}//在Linux平台上有系统自带的版本,Windows上则需要自己实现#ifndef strndup/** * @brief * 新版的复制指定字符串的前N个字符 * @param src * @param n should be positive * * @return */char* strndup(char* src,int n) { if(!src||n<=0) { return NULL; } int srcLen=strlen(src); int realN=(srcLen>n)?n:srcLen; char* returnStr=(char*)malloc(realN+1); memcpy(returnStr,src,realN); return returnStr;}#endif //strndup
0 0
- 查找字符串中指定的子串的首次出现的位置
- 查找字符串中指定字符的位置
- 查找字符串中指定字符的位置:
- 获取字符串中指定字符最后一次出现的位置
- 删除字符串中指定位置的字符
- 删除字符串中指定位置的字符
- 查找字符串中指定字符的个数
- C语言版字符串中获得子串的函数,获取字符串中指定位置的子串
- /查找字符串str中首次出现c的位置
- C 查找字符在字符串首次出现的位置
- strchr()查找字符串首次出现字符‘X’的位置
- js获取一个字符串中指定字符串第n次出现的位置
- 字符串中指定长度的子字符串的提取
- 获得子串在一个字符串中首次出现的位置
- 查找一段文字中指定文字出现的次数
- 使用grep查找文件中指定字符出现的次数
- linux下查找某类文件中指定的字符串
- 求字符串中指定开始和结束字符串的子串数量
- Combinations
- 3-m-Longest Substring Without Repeating Characters
- 关于SetWindowOrgEx、SetViewportOrgEx、SetViewportExtEx 和SetWindowExtEx 详解
- POJ3617 Best Cow Line
- MySQL数据库引擎
- 查找字符串中指定的子串的首次出现的位置
- tslib库移植错误解决
- C++对象的copy constructor与copy assignment的区别与联系
- C Primer Plus 第十二章学习总结……2015.5.5
- poj1013
- SLIC超像素分割详解(一):简介
- C++中用到的读取和输出函数。。部分,尚待完善
- java int与integer的区别
- jquery实现标签属性控制