求一个win7版本64位ps4可用的dtx缩略图插件
发布网友
发布时间:2022-05-26 02:46
我来回答
共1个回答
热心网友
时间:2024-11-24 00:23
试试这个
那个不同部分的输出方式自便吧...
// 临时最大公共字串
static const int MAX_LEN = 1024;
struct Item
{
char szSubStr[MAX_LEN];
int iTop;
};
int main()
{
// 初始化数据
Item vSameSubStr [2][MAX_LEN] = {0};
int iCurLine = 1;
char sz1[MAX_LEN] = "", sz2[MAX_LEN] = "";
puts("输入两个字符串");
scanf("%[^\n]", sz1);
getchar();
scanf("%[^\n]", sz2);
int iLen1 = strlen(sz1);
int iLen2 = strlen(sz2);
// 求最大公共字串
for (int i = 0; i < iLen1; ++i)
{
int iNextLine = (iCurLine + 1) & 1;
vSameSubStr[iNextLine][0] = vSameSubStr[iCurLine][0];
if (vSameSubStr[iNextLine][0].iTop == 0 && sz1[i] == sz2[0])
{
vSameSubStr[iNextLine][0].szSubStr[vSameSubStr[iNextLine][0].iTop++] = sz2[0];
}
for (int j = 1; j < iLen2; ++j)
{
if (sz1[i] == sz2[j])
{
vSameSubStr[iNextLine][j] = vSameSubStr[iCurLine][j - 1];
vSameSubStr[iNextLine][j].szSubStr[vSameSubStr[iNextLine][j].iTop++] = sz1[i];
}
else
{
vSameSubStr[iNextLine][j] =
vSameSubStr[iNextLine][j - 1].iTop > vSameSubStr[iCurLine][j].iTop ?
vSameSubStr[iNextLine][j - 1] : vSameSubStr[iCurLine][j];
}
}
iCurLine = iNextLine;
}
// 匹配到的结果
char *pMaxSubStr = vSameSubStr[((iLen1 & 1) + 1) & 1][iLen2 - 1].szSubStr;
// 提出两个串不同于公共字串的部分
char *pDif1 = sz1;
char *pDif2 = sz2;
char *pStr1 = sz1;
char *pStr2 = sz2;
while (*pMaxSubStr != 0)
{
while (*pStr1++ != *pMaxSubStr)
{
*pDif1++ = pStr1[-1];
}
while (*pStr2++ != *pMaxSubStr)
{
*pDif2++ = pStr2[-1];
}
pMaxSubStr++;
}
while ((*pDif1++ = *pStr1++) != 0);
while ((*pDif2++ = *pStr2++) != 0);
// 打印不同部分
printf("串1独有部分: %s\n", sz1);
printf("串2独有部分: %s\n", sz2);
}