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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2009, 17:39   #1
Dest
 
Аватар для Dest
 
Регистрация: 13.05.2009
Сообщений: 8
Сообщение Инверсия слов в строке. С++

Задание: Дана последовательность, в которой от 1 до 30 слов, в каждом от 1 до 5 букв; Между соседними словами - запятая, после последнего - точка. Напечатать эту же последовательность слов, только в обратном порядке.

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

void main ()

{

clrscr();

char str[300]="ves,smisl,danog,oumo,zaklu,cheni,ya,sost,o,it,v,tom"
",chto,le,git,ativn,ost,danno,go,viraj,enija,owib,ochna,zdes,vse,s"
"vem,dolg,no,bit,yasno.";
char newm[300];

int len,i;

len=strlen(str);

printf("Dlinna stroki:> %i",len);

printf("\nStroka:> ");
printf(str);

putchar('\n');

printf("Stroka s zadu napered:> ");
for (i=len;i>=0;--i)
 {
  printf("%c",str[i]);
 }
//Ничего в голову кроме этого не лезит
for (i=len;i>=0;--i)
 if ((str[i]==',') && (str[i-1]!=','))
  {
   do
   newm[i]=str[i-1] ;
   while (str[i-1]!=',');
  }
printf(newm);

}
проблема с красным диапазоном, а именно не могу понять, как сделать обратный порядок слов.
на мои наброски сильно не наезджать, т.к. не могу догадаться, как изменить порядок

Из строки "ves,smisl,danog,oumo,zaklu,cheni,y a,sost,o,it,v,tom,chto,le,git,ativn ,ost,danno,go,viraj,enija,owib,ochn a,zdes,vse,svem,dolg,no,bit,yasno."
Должно выйти ".yasno,bit,no,dolg,svem,vse... " и так далее.
Помогите! Буду благодарен
Анархия – массив монархий, состоящих из одного индивида.

Последний раз редактировалось Dest; 17.05.2009 в 17:56.
Dest вне форума Ответить с цитированием
Старый 17.05.2009, 17:42   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2Dest неужели условие задачи нельзя было написать по русски??? ппц просто
vvviperrr вне форума Ответить с цитированием
Старый 17.05.2009, 17:51   #3
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Код:
void printWord(char *str)
{
	while (*(str++)!=',')
	{
		printf("%c", *str);
	}
}
передаем в функцию указатель на строку.

Ищем, начиная с конца последовательности, запятые. Найдя запятую, передать указатель на ячейку в функцию.

Код:
for (i=len;i>=0;--i)
 if (str[i]==',') 
  {
     printWord(&str[i]);
  }
Я не проверял, но принцип такой
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.

Последний раз редактировалось SunKnight; 17.05.2009 в 18:03.
SunKnight вне форума Ответить с цитированием
Старый 17.05.2009, 17:58   #4
Dest
 
Аватар для Dest
 
Регистрация: 13.05.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от vvviperrr Посмотреть сообщение
2Dest неужели условие задачи нельзя было написать по русски??? ппц просто
vvviperrr, неужели украинский язык такой непонятный, что обязательно на русском?
Теперь на русском

SunKnight, принцип не понятен :|
не мог бы ты написать без указателей, а то я с ними не особо знаком.
Анархия – массив монархий, состоящих из одного индивида.

Последний раз редактировалось Dest; 17.05.2009 в 18:52.
Dest вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочивание слов в строке Nitrino Общие вопросы C/C++ 19 18.05.2009 22:09
В заданной строке символов заменить все первые буквы слов на заглавные NV-salt Общие вопросы C/C++ 4 05.04.2009 18:41
Поиск слов в строке Neymexa Общие вопросы C/C++ 3 16.12.2008 18:33
Разделение 2-х слов в строке 856100 Общие вопросы Delphi 9 06.10.2008 20:41