字元串操作:不調用任何系統函數,實作一個字元串查找子串的函數,如果包含字串,則傳回該字元串的位置值,如果不包含,則傳回-1。
//查找子串
#include <iostream>
using namespace std;
#define CM_ERROR -1;
int findSub(char* pSrc,char* pDes)
{
if(NULL == pSrc || NULL == pDes)
{
//pDes = "\0";
return CM_ERROR;
}
int iPos = 1;
char* pTmp;
while('\0' != *pSrc)
{
pTmp = pDes;
while(*pSrc != *pTmp)
{
if(*pSrc == '\0')
{
return CM_ERROR;
}
pSrc++;
iPos++;
}
while((*pSrc == *pTmp)&&('\0' != *pTmp))
{
pSrc++;
pTmp++;
}
if(*pTmp !='\0')
{
iPos += 1;
}
else
break;
}
if(*pTmp=='\0')
{
return iPos;
}
else
return CM_ERROR;
}
int main(int argc, char const *argv[])
{
char chSrc[]= "hello world";
char chDes[] = "ldd";
int iPosition = findSub(chSrc,chDes);
cout<<iPosition<<endl;
system("pause");
return 0;
}