Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: .....   (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;
}
должно быть можно сделать ещё оптимальнее.


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: