Автор: ..... (07.10.2010 в 19:56)
>вот работающая программа
что-то мне показалось она не работает в точности по описанию. как например такое:
(но мне лично goto намногго удобнее в таких делах (хоть и бесит многих :)), конкретно здесь можно их и заменить, но я у себя не заменяю)
# include <iostream>
using namespace std;
char* job (const char *src, char *rez)
{
char f='\0'; // запоминает первый пробел и \0 до нахождения
char* out = rez; // не изменяющийся указатель
x_srart:
while(*src && *src != ' ' && *src != '\t') {
if (!f) { src++; goto x_srart; }
*rez = *src;
rez++;
src++;
}
f=*src;
while(f && (*src == ' ' || *src == '\t')) src++;
*(rez++)=f;
if (f) goto x_srart;
return out;
}
int main () // не менял
{
char str1[80], str2[80];
while (cout << "Enter: \n", cin.getline(str1,80))
{
cout << "Sourl string: \n" << '"' << str1 << '"' << endl;
cout << "Result string: \n" << '"' << job (str1, str2) << '"' << endl;
}
return 0;
} |
должно быть можно сделать ещё оптимальнее.