|
数组_合并_快速 | 文本型 | |
|
欲处理的数组 | 文本型 | | | |
间隔符 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
pArr | 整数型 | | |
len | 整数型 | | |
i | 整数型 | | |
bufSize | 整数型 | | |
pBuf | 整数型 | | |
pSub | 整数型 | | |
nSub | 整数型 | | |
offset | 整数型 | | |
strLen | 整数型 | | |
pStr | 整数型 | | |
nStr | 整数型 | | |
pTmp | 整数型 | | |
tmpSize | 整数型 | | |
ret | 文本型 | | |
len =
取数组成员数 (欲处理的数组
)
如果真 (len = 0
)
返回 (“”)pArr = 取数据_通用型_数组 (欲处理的数组)
bufSize = len × 260 pBuf =
malloc (bufSize + 1
)
如果真 (取反 (是否为空 (间隔符
))
) 
pSub =
取指针_文本型 (间隔符
)
如果真 (pSub ≠ 0
) 

nSub =
strlen (pSub
)


计次循环首 (len, i
)
pStr =
__get (pArr, (i - 1
) × 4
) 
如果真 (pStr ≠ 0
) 

nStr =
strlen (pStr
) 

如果真 (offset + nStr > bufSize
) 


tmpSize = bufSize



bufSize = bufSize × 2 + nStr





pTmp =
malloc (bufSize
)

memcpy (pTmp, pBuf, tmpSize
) 

free (pBuf
)


pBuf = pTmp




memcpy (pBuf + offset, pStr, nStr
)

offset = offset + nStr



如果真 (pSub ≠ 0
且 i < len
)
memcpy (pBuf + offset, pSub, nSub
)

offset = offset + nSub


计次循环尾 ()__set_byte (pBuf, offset, 0
) ret =
指针到文本 (pBuf
)free (pBuf
)返回 (ret
)