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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2009, 16:15   #1
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
Подмигивание Задачка со строками (с++)

Всем привет !! Помогите с програмой : вводим слова в строку. А потом программа должна развернуть (или перевернуть = например alex = xela) каждое четное слово в строке.
Я создал набросок... но он может работать только с одним словом (( как можно научить прогу что бы она знала где слово тоисть не читала пробел как символ.

вот мое :
Код:
#include <cstdlib>
#include <iostream>
#include <strings.h>

using namespace std;


int main(int argc, char *argv[])
{
char stroka[256];
int a;
cout << "Vvedite stroku: ";
cin >> stroka;
cout << "Result : " << stroka << endl;
a=strlen(stroka);
cout << "New :"; 
if (a%2==0)
  {
  a--;
    for (;a>=0;a--)
     {
       cout << stroka[a];
     }
  }
else cout << "Chetnix slov net !";

    system("PAUSE");
    return EXIT_SUCCESS;
}

Последний раз редактировалось Alex1991; 05.04.2009 в 16:44.
Alex1991 вне форума Ответить с цитированием
Старый 05.04.2009, 16:45   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <iostream>
#include <string.h>
using namespace std;

int main()
{
char str[256],c;
int i,a,k,cnt=0,len;

gets(str);
len = strlen(str);
for(i=0;i<len;i++)
 {
  while(str[i]==' ' && i<len) i++; // пропускаем пробелы
  a = i;    // запоминаем где начало слова
  while(str[i]!=' ' && i<len) i++; // идем по слову
  cnt++;
  if(cnt%2==0)  // если слово четное...
   {
    for(k=a;k<i-(i-a)/2;k++)  // идем до середины слова и меняем местами буквы
     {
      c = str[k];
      str[k] = str[i-(k-a)-1];
      str[i-(k-a)-1] = c;
     }
   }

 } //for

puts(str);

cin.get();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 17:12   #3
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
По умолчанию

Чето плохо работает (( Например напишите "I best" а потом попробуйте "I am best"
Alex1991 вне форума Ответить с цитированием
Старый 05.04.2009, 17:15   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
I best
I tseb
Код:
I am best
I ma best
Все как и должно быть. Меняются четные слова.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 17:21   #5
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
По умолчанию

Аааааа я теперь докумекал !! Я то думал что нужно чтобы прога перевертала именно те слова которые состоят из количества букв и их количество четное. Во я затупил ))))
Alex1991 вне форума Ответить с цитированием
Старый 05.04.2009, 17:27   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Собственно, несложно изменить, чтобы было как вы предположили. Просто условие будет таким:
Код:
if((i-a)%2==0)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.04.2009, 17:41   #7
MeGaTpoH
Форумчанин
 
Регистрация: 24.09.2008
Сообщений: 120
По умолчанию

Код:
  
#include <iostream>
#include <strings.h>

using namespace std;


int main()
{
string stroka;
char rem;
cout << "Vvedite stroku: ";
cin >> stroka;
cout << "Result : " << stroka << endl;
 int i,j;
cout << "New :"; 
 for(j=0,i=stroka.size()-1;j<i;--i,++j)
{
                  rem=stroka[i];
                  stroka[i]=stroka[j];
                  stroka[j]=rem;
}
                  cout<<stroka;
return 0;
}
в программировании нубик
MeGaTpoH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка со строками. С++ Alex1991 Помощь студентам 1 16.03.2009 23:09
Задачка со строками (Паскаль) GaJIbI4 Помощь студентам 3 23.01.2009 20:57
help со строками SYL@R Помощь студентам 6 07.07.2008 13:04
Задачка на работу с символами и строками Go6a Помощь студентам 10 30.03.2008 16:31
Задачка со строками... 3ypa6uK Помощь студентам 5 15.12.2006 08:54