Показать сообщение отдельно

  #248  
Старый 01.07.2009, 01:05
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами: 10386906

Репутация: 599


По умолчанию

поизучай этот код.
Код:
 char *split(char *s1, char *s2)
{
    char *p = new char[strlen(s1) + strlen(s2) + 1];
    char* result = p;

    while( *p++ = *s1++ ) ;  
    p--;
    while( *p++ = *s2++ ) ;  


    return result;
}
пара замечаний - не делай выделение памяти в одной функции, а освобождение в другой. или же делай класс, чтобы скрыть управление памятью(собсно тот самый string так и работает). если без классов - то первую строку переносишь в место вызова и добавляешь третий параметр - строка которая будет содержать результат.

второе - p[j++] = *s2++;
если уж делаешь через разыменовывние - делай все через разыменование. или все через индекс. а то этот код заставляет лишний раз на нем сфокусироваца.

Последний раз редактировалось Ra$cal; 01.07.2009 в 01:08..
 
Ответить с цитированием