Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2010, 08:49   #1
Senator16
Пользователь
 
Регистрация: 25.12.2010
Сообщений: 11
По умолчанию

в записке слова зашифрованы - каждое слово написано наоборот. Помогите пожалуйста а то у меня переворачивает только 1-е слово.

Задача на C++

Вот мой программный код
Код:
#include<conio.h>
void main()
{char p[100];
int i,g,n,u,c,k;
clrscr();
u=0;i=0;g=0;n=0;c=0;k=0;
cout<<"‚ўҐ¤ЁвҐ бва®Єг: ";
gets(p);
u=strlen(p);
while(i<u)
  {if(p[i]==' ')
   {cout<<i;printf("\n");k=n;
    while(k<(n+(i-n)/2))
     {c=p[k];p[k]=p[i-n-1-k];
      p[i-n-1-k]=c;k++;
     }
    n=i+1;i++;
   }
   else
    i=i+1;
  }
while(k<(u-n)/2)
 {c=p[k];p[k]=p[u-n-k];
  p[u-n-k]=c;k++;
 }
printf("‘ва®Є*: ");
puts(p);
}
Не кто подобные задачи не решал что ли?

Я уже 3-й день парюсь с этой задачей

Последний раз редактировалось Stilet; 25.12.2010 в 12:00.
Senator16 вне форума Ответить с цитированием
Старый 25.12.2010, 12:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну почему же. Решали конечно же. Если бы ты не ленился пройтись поиском ты бы нашел пример разбора строки на слова: http://www.programmersforum.ru/showthread.php?t=121545
А так же реверс слов:http://www.programmersforum.ru/showthread.php?t=95656
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.12.2010, 12:05   #3
Senator16
Пользователь
 
Регистрация: 25.12.2010
Сообщений: 11
По умолчанию

Мне нужно программа которая переворачивает каждое слово в строке а не всю строку целиком

Помогите пожалуйста в течении часа

Последний раз редактировалось Stilet; 27.12.2010 в 15:42.
Senator16 вне форума Ответить с цитированием
Старый 25.12.2010, 15:22   #4
dosha
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 224
По умолчанию

Код:
#include<conio.h>
#include<string.h>
#include<iostream.h>

void main()
{char p[100],z[100];
int i,n,u,c,k;
clrscr();
u=0;i=0;n=0;c=0;k=0;
cout<<"‚ўҐ¤ЁвҐ бва®Єг: "<<endl;
gets(p);
u=strlen(p);
for (i=1;i<u;i++)
  {
   if(p[i]==' ')
   {
      cout<<i;
      printf("\n");
      for (k=n;k<i+1;k++)
      {
      z[k]=p[i-k-1];
      }
      z[k]=' ';
      n=i;
   }
}


printf("‘ва®Є*: ");
puts(z);
getch();
}
держи,после каждого слова должен стоять " " пробел

Последний раз редактировалось dosha; 25.12.2010 в 15:28.
dosha вне форума Ответить с цитированием
Старый 25.12.2010, 15:28   #5
dosha
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 224
По умолчанию

исправил код
dosha вне форума Ответить с цитированием
Старый 25.12.2010, 15:29   #6
Senator16
Пользователь
 
Регистрация: 25.12.2010
Сообщений: 11
По умолчанию

нет не исправил пока
Senator16 вне форума Ответить с цитированием
Старый 25.12.2010, 16:15   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Мне нужно программа которая переворачивает каждое слово в строке а не всю строку целиком
Ты не понял )))
Разбей строку на массив слов, а потом в цикле каждое слово переворачивай.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.12.2010, 17:06   #8
Senator16
Пользователь
 
Регистрация: 25.12.2010
Сообщений: 11
По умолчанию

Я тут поднопряг мозги и смог зделать это. У меня не работает только последний блок!
Код:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
void main()
{char p[100];
int i,g,n,u,c,k,v;
clrscr();
u=0;i=0;g=0;n=0;c=0;k=0;
cout<<"‚ўҐ¤ЁвҐ бва®Єг: ";
gets(p);
u=strlen(p);
while(i<u)
  {if(p[i]==' ')
   {k=n;
    while(k<=(n+((i-n)/2))-1)
     {c=p[k];p[k]=p[i-1+n-k];
      p[i-1+n-k]=c;k=k+1;
     }
     n=i+1;i++;
   }
   else
    i=i+1;
  }
//while(k<=(n+((i-n)/2)))
 {c=p[k];p[k]=p[i+n-k];
  p[i+n-k]=c;k++;
 }//
printf("‘ва®Є*: ");
puts(p);
}
( // выделен последний блок)

Последний раз редактировалось Stilet; 27.12.2010 в 15:48.
Senator16 вне форума Ответить с цитированием
Старый 25.12.2010, 18:16   #9
Senator16
Пользователь
 
Регистрация: 25.12.2010
Сообщений: 11
По умолчанию

этот блок отвечает за переворот последнего слова

Вот ПОЛНОСТЬЮ РАБОЧАЯ ПРОГРАММА
Код:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
void main()
{char p[100];
int i,g,n,u,c,k,v;
clrscr();
u=0;i=0;g=0;n=0;c=0;k=0;
cout<<"Введите строку: ";
gets(p);
u=strlen(p);
while(i<u)
  {if(p[i]==' ')
   {k=n;
    while(k<=(n+((i-n)/2))-1)
     {c=p[k];p[k]=p[i-1+n-k];
      p[i-1+n-k]=c;k=k+1;
     }
     n=i+1;i++;
   }
   else
    i=i+1;
  }k=n;
while(k<=(n+(u-n)/2)-1)
 {c=p[k];p[k]=p[u-1+n-k];
  p[u-1+n-k]=c;k++;
 }
printf("Строка*: ");
puts(p);
}

Последний раз редактировалось Stilet; 27.12.2010 в 15:48.
Senator16 вне форума Ответить с цитированием
Старый 17.03.2013, 17:44   #10
MCKLAS
Новичок
Джуниор
 
Регистрация: 18.07.2011
Сообщений: 1
По умолчанию

Работающий код на C++.Заточен под Visual Studio 2010
Цитата:
#include<iostream>
#include<string>
using namespace std;

int main()
{
char p[100];
int i = 0,g = 0,n = 0,u = 0,c = 0,k = 0,v = 0;
cout<<"Input string:";
cin.getline(p,sizeof p);
u=strlen(p);
while(i<u)
{
if(p[i]==' ')
{
k=n;
while(k<=(n+((i-n)/2))-1)
{
c=p[k];p[k]=p[i-1+n-k];
p[i-1+n-k]=c;k=k+1;
}
n=i+1;i++;
}
else
i=i+1;
}
k=n;
while(k<=(n+(u-n)/2)-1)
{
c=p[k];p[k]=p[u-1+n-k];
p[u-1+n-k]=c;k++;
}
cout << "Reverse string: " << p << endl;
system("pause");
}

Последний раз редактировалось MCKLAS; 17.03.2013 в 17:49.
MCKLAS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество слов в строке Настя93 Помощь студентам 7 24.02.2011 19:47
Замена слов в строке lpofigistl Общие вопросы C/C++ 1 16.05.2010 20:38
Упорядочивание слов в строке Nitrino Общие вопросы C/C++ 19 18.05.2009 22:09
Инверсия слов в строке. С++ Dest Общие вопросы C/C++ 3 17.05.2009 17:58
Разделение 2-х слов в строке 856100 Общие вопросы Delphi 9 06.10.2008 20:41