#include <iostream>
char* ReplaceSpacesOnTabs(char* string)
{
const char CDelim = ':';
const unsigned CPos = 8;
unsigned offs = 0;
char* str = string;
char* begin;
char* end;
while (*str)
{
for (; *str && *str != CDelim; ++str) { ; }
begin = str;
for (; *str && *str == CDelim; ++str) { ; }
end = str;
if (((begin + offs - string) / CPos) < ((end + offs - string) / CPos))
{
*begin++ = '\t';
str = begin;
offs += end - begin;
while (*end)
{
*begin++ = *end++;
}
*begin = 0;
}
}
return string;
}
int main()
{
char text[] = "Cake::::is::::::a:lie!_:_";
std::cout << ReplaceSpacesOnTabs(text) << std::endl;
return 0;
}