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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2014, 19:16   #1
DAn9I
 
Регистрация: 15.05.2013
Сообщений: 8
По умолчанию Каждое слово строки вывести задом наперед

Немогу понять в чем ошибка кода, ХЕЛП!

Код:
#include <iostream>
#include <cstring>
using namespace std;
void main()
{
	char a[50],b[50]; int i,c,k,j,l;
	c=0;
	j=0;
	l=0;
	cout<<"Vvedit text>";
	gets(a);
	cout<<a<<endl;
for (i=0;i<strlen(a);i++)
if (a[i]!=' ') {l=l+1;}

if (l==strlen(a)) {strrev(a);cout<<a<<endl;}
else
{
for (i=0;i<strlen(a);i++)
{	
	if (a[i]!=' ') {b[j]=a[i];j=j+1;}
	else
	{cout<<strrev(b)<<" ";strcpy(b,"");j=0;}
}
cout<<strrev(b);
}
}


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 15.04.2014 в 09:51.
DAn9I вне форума Ответить с цитированием
Старый 14.04.2014, 19:29   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

у тебя слишком сложно. вот так проще:
http://ideone.com/fAMoNH
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.04.2014, 19:33   #3
DAn9I
 
Регистрация: 15.05.2013
Сообщений: 8
По умолчанию

но мне нужно только с этими директивами, т.к. будет очевидно что скатал с интернета, а лабу мне защищать нужно. а в вашем примере много материала который мы не проходили (
DAn9I вне форума Ответить с цитированием
Старый 14.04.2014, 21:18   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
но мне нужно только с этими директивами
директив там новых нет
p51x вне форума Ответить с цитированием
Старый 14.04.2014, 22:51   #5
Desmoond
 
Аватар для Desmoond
 
Регистрация: 27.01.2013
Сообщений: 5
По умолчанию

Отдельно каждое слово или всю строку?

Идея такова, во-первых, нужно 2 индекса, первый для хранения начала слова, второй для его конца. Для конца слова идеально подходит следующее условие:

Код:
if (c[i]!=' ' && (c[i+1]==0 || c[i+1]==' '))
Далее цикл:
Код:
for(i=n, j=k; i<j; i++, j--) {
		char c=A[i]; A[i]=A[j]; A[j]=c;
	}
n - индекс начала слова
k - индекс конца слова.
Внутри тела цикла идет процесс переворачивания слова наизнанку.

Последний раз редактировалось Desmoond; 14.04.2014 в 23:04.
Desmoond вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на файлы. Дано предложение. Каждое слово оканчивающееся на 'a' переписать в творительном падеже. Результат вывести на экран ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 46 20.03.2013 21:09
Как вывести строку, которая состоит из аргументов командной строки так, чтобы каждое слово выводилось без первого символа Mik2012 Общие вопросы C/C++ 1 31.10.2012 00:29
Си: каждое слово строки в ряде двумерного массива Hesh Общие вопросы C/C++ 2 23.09.2012 16:56
Помогите сделать программу c выводом строки задом наперед(Pascal) Batman10000 Помощь студентам 2 14.12.2008 17:54
Нужно вывести на экран каждое слово на новой строке. Юлёк PHP 5 28.01.2008 14:57