704 ____Часть II. Программирование на C++

while (*p && *р !=','&& *р !=')') {

р++;

}

if (*р == '\0') return;

if (*p == •) ') (

while (*string && *string !== ')')

{

**result++ = *string++;

)

*result = '\0';

}

else

{

p++;

while (*p && *p == ' ') {

P++;

}

if (*p == '\0') returns-while (*p && *p !=')') {

*result++ = *p++;

}

if (*p =- '\0') {

*result = '\0' ;

return;

}

*result++ = ' ' ;

while (*string && «string != ',') {

*result++ = *string++;

}

*result = '\0';

}

}

Требуются немалые усилия, чтобы понять, как же работает этот небольшой фрагмент. А ведь он помимо своей основной задачи выполняет еще проверку ряда ошибок и обработку особых случаев, таких как наличие лишних пробелов или однословные имена (например, Madonna). Чтобы сделать его