strcpy(tmp_buff, "#F");
memcpy(&tmp_buff[2], &buff[strchr(&buff[2], '#') - buff], strchr(&buff[strchr(&buff[2], '#') - buff +1], '#') - &buff[strchr(&buff[2], '#') - buff] );
#include <iostream>
#include <cstring>
using namespace std;
// Функция выполняющая требуемое преобразование. Возвращает требуемый размер области памяти для размещения результата.
// Если dst==0 на том и заканчивается. Иначе копирует согласно условия.
size_t del_username(const char* const src,char* dst)
{
// Требуемый размер буфера
size_t len=0;
// Проверим начинается ли строка с "#F"
if(!strncmp(src,"#F",2))
{
// Первый копируемый символ из filename
const char* first=strchr(src+2,'#');
// Если есть то
if(first)
{
len=strlen(++first)+3;
// Если dst!=0 то копируем
if(dst)
{
strncpy(dst,src,2);
strcpy(dst+2,first);
}
}
}
return len;
}
int main()
{
char src[]="#Fusername#filename#musor";
try
{
// Вычисляем размер области и выделяем память
char* dst=new char[del_username(src,0)];
// Копируем
del_username(src,dst);
// Выводим для проверки
cout<<dst<<endl;
delete[] dst;
}
catch(...)
{
}
return 0;
}
#Ffilename#musor
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.