Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нужна помощь............

8.3K
20 декабря 2004 года
Sintez
8 / / 20.12.2004
Нужно написать функцию на Си, которая меняет местами первое слово с последним словом и возвращает новую строку.
В функцию передается строка слов, отделенных пробелами.
Помогите написать.
259
21 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Sintez
Нужно написать функцию на Си, которая меняет местами первое слово с последним словом и возвращает новую строку.
В функцию передается строка слов, отделенных пробелами.
Помогите написать.


Ты немного не туда заехал. В Паскалевсом форуме просишь написать функцию на С.

Код:
char* ChangeWord(char* inStr)
{
   char* Result;
   char* FirstWord;
   char* LastWord;
   int firstWordPos,lastWordPos,i,j;
   Result = mallock(sizeof(char)*StrLen(inStr));
   FirstWord = mallock(sizeof(char)*StrLen(inStr));
   LastWord = mallock(sizeof(char)*StrLen(inStr));
   firstWordPos = 0;
   lastWordPos = 0;
   /* формируем первое слово и запоминаем позицию с которой начинается второе */
   for(i=0;i<StrLen(inStr);i++)
   {
      if(inStr != ' ')
         FirstWord = inStr;
      else
      {
         firstWordPos = i;
         FirstWord = 0x0;
         break;
      }
    }
   /* формируем последнее слово и запоминаем позицию с которого оно начинается */
   j=0;
   for(i=StrLen(inStr)-1;i>0;i--)
   {
      if(inStr == ' ')
         break;
   }
   lastPosWord = i;
   for(i=lastPosWord;i<StrLen;i++)
      LastWord[j++]= inStr;
   LastWord[j] = 0x0;
/* формируем результат */
   /*на место первого ставим последнее*/
   j=0;
   for(i=0;i<StrLen(LastWord);i++)
      Result[j++] = LastWord;
   /*дальше все кроме последнего*/
   for(i=firstPosWord;i<lastPosWord;i++)
      Result[j++] = inStr;
   /* и наконец первую */
   for(i=0;i<StrLen(FirstWord);i++)
      Result[j++] = FirstWord;
/* убираем мусор */
   free(FirstWord);
   free(LastWord);
   return Result;
}

Выглядит это приблизительно так.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог