您的位置:首页 > 其它

输入两个字符串,输出第二个字符串在第一个字符串中的连接次序

2011-06-03 20:00 375 查看
#include <iostream>

using namespace std;

void printArray(char *pcParent, char *pcSon, int *orderArray, const int npLen, int npStartNum, const int nsLen, int nsCurrentNum)
{
if (nsCurrentNum == nsLen)
{
for (int i = 0; i < nsLen; i++)
{
cout << orderArray[i] << " ";
}
cout << endl;
return;
}
else
{
for (int j = npStartNum; j < npLen; j++)
{
if (pcParent[j] == pcSon[nsCurrentNum])
{
orderArray[nsCurrentNum] = j + 1;
printArray(pcParent, pcSon, orderArray, npLen, j + 1, nsLen, nsCurrentNum + 1);
}
}
}
}

void conncetSequence(char *pcParent, char *pcSon)
{
const int npLen = strlen(pcParent);
const int nsLen = strlen(pcSon);
if (nsLen == 0 || npLen == 0)
{
cout << "The string can not be empty!" << endl;
return;
}
else
{
int *pnArray = new int[nsLen];
if (pnArray == NULL)
{
cout << "Allocate memory failed!" << endl;
return;
}
else
{
printArray(pcParent, pcSon, pnArray, npLen, 0, nsLen, 0);
}
delete pnArray;
pnArray = NULL;
}
}
int main()
{
char *pcParent = "acbdbcadbccbabc";
char *pcSon = "abc";
conncetSequence(pcParent, pcSon);
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐