求一段字符串的处理算法。
缓冲区char * buf[4096],如果超过20个字符算一行,如果有\r或者\n算一行,如果\r\n同时出现算一行,如果\n\n或\r\r同时出现算2行。我现在先考虑最简单的情况。没有\r\n连续的出现。写的,错误百出。
char buf[4096]={0};
char *p1 = buf;
char *p3 = buf+sizeof(buf);
int i = 0;
while (p1 <= p3)
{
for (i=0; i<20 && '\0'!= *p1;i++,p1++)
{
if ('\r' == *p1 || '\n' == *p1)
{
msg_row_count++;
break;
}
}
msg_row_count++;
}