Забытые секреты кодинга №3: строковые операции в C
/* Поиск с помощью strstr – довольно быстрый, переносимый */ char s[]="a\r\n ab\r\n abc\r\n"; char *p, *pold=s, *p2 = s; unsigned n; while(p = strstr(pold, "\r\n") ) { n = p - pold; // n == длина перемещаемой части строки (от предыдущего memmove(p2, pold, n); // вхождения до текущего) p2 += n; pold = p + 2; } strcpy(p2, pold); /* Поиск с помощью toShort, копирование по байтам – немного быстрее */ char s[]="a\r\n ab\r\n abc\r\n", *p = s, *p2 = s; while(*p) // Пока в строке есть символы { if ( *(short*)p == toShort('\r','\n') ) p+=2; // Нашли, пропускаем два символа else *(p2++) = *(p++); // Копируем и переходим к следующему символу } *p2 = '\0';

























