#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; } |
输入两个字符串,输出第二个字符串在第一个字符串中的连接次序
最新推荐文章于 2023-11-11 14:44:17 发布