超难的字符串处理问题
原始字符串
YWF2YkBA
QEBAbWF4
a2luZyMj
IyMjJCQk
JCRkb25n
MTk4MSUl
JSUlPDw8
PDwwMDA2
QjYyRjZC
Pj4+Pj5b
W1tbW8bm
vKPKwL3n
0KGw78rW
Mi4yOF1d
XV1de3t7
e3sxfX19
fX1+fn5+
fjEwNWBg
YGBgYWF2
Yg==
现在需要每隔76位插入一个0x0D,0x0A
要实现成
59 57 46 32 59 6B 42 41 YWF2YkBA
51 45 42 41 62 57 46 34 QEBAbWF4
61 32 6C 75 5A 79 4D 6A a2luZyMj
49 79 4D 6A 4A 43 51 6B IyMjJCQk
4A 43 52 6B 62 32 35 6E JCRkb25n
4D 54 6B 34 4D 53 55 6C MTk4MSUl
4A 53 55 6C 50 44 77 38 JSUlPDw8
50 44 77 77 4D 44 41 32 PDwwMDA2
51 6A 59 79 52 6A 5A 43 QjYyRjZC
50 6A 34 2B 0D 0A 50 6A Pj4+..Pj
35 62 57 31 74 62 57 38 5bW1tbW8
62 6D 76 4B 50 4B 77 4C bmvKPKwL
33 6E 30 4B 47 77 37 38 3n0KGw78
72 57 4D 69 34 79 4F 46 rWMi4yOF
31 64 58 56 31 64 65 33 1dXV1de3
74 37 65 33 73 78 66 58 t7e3sxfX
31 39 66 58 31 2B 66 6E 19fX1+fn
35 2B 66 6A 45 77 4E 57 5+fjEwNW
42 67 59 47 42 67 59 57 BgYGBgYW
46 32 0D 0A 59 67 3D 3D F2..Yg==
[解决办法]
char * AddCRLF(const char *src, char * des,int iSep)
{
char * d=des;
int i=strlen(src)/iSep;
while(i--)
{
memcpy(d,src,iSep);
d+=iSep;
d[0]=0x0D;
d[1]=0x0A;
d+=2;
src+=iSep;
}
*d= '\0 ';
if(strlen(src) > 0) strcpy(d,src);
return des;
}