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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2013, 15:42   #21
Caca0
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 50
По умолчанию

||=== 11, Debug ===|
\11\main.cpp||In function 'int main()':|
\11\main.cpp|17|error: 'isspace' was not declared in this scope|
\11\main.cpp|21|warning: name lookup of 'j' changed|
\11\main.cpp|10|warning: matches this 'j' under ISO standard rules|
\11\main.cpp|19|warning: matches this 'j' under old rules|
\11\main.cpp|21|warning: name lookup of 'k' changed|
\11\main.cpp|10|warning: matches this 'k' under ISO standard rules|
\11\main.cpp|19|warning: matches this 'k' under old rules|
\11\main.cpp|10|warning: unused variable 'end'|
\11\main.cpp|10|warning: unused variable 'tmp'|
\11\main.cpp|10|warning: unused variable 'l'|
||=== Build finished: 1 errors, 9 warnings ===|
Caca0 вне форума Ответить с цитированием
Старый 04.02.2013, 15:54   #22
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

У меня Ваш список объявлений вагона int-ов закомментирован, если не заметили.
Если Ваш C не ест isspace, ну напишите её сами:
Код:
bool isspace(char c){
  static const char* spaces = " \t\n\r";
  for(char* cur=spaces; *cur; ++cur) if(*cur==c) return true;
  return false;
}
Upd: Или #include <ctype.h>

Последний раз редактировалось Abstraction; 04.02.2013 в 15:57.
Abstraction вне форума Ответить с цитированием
Старый 04.02.2013, 16:47   #23
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
#include <iostream>
#include <sstream>
#include <algorithm>
#include <cstring>
int main() {
  std::stringstream sstr;
  char cstr[255];

  std::cin.getline(cstr, 255);
  sstr << cstr;

  while (false == sstr.eof()) {
    sstr >> cstr;
    std::reverse(cstr, cstr + strlen(cstr));
    std::cout << cstr << " ";
  }

  return 0;
}
rrrFer вне форума Ответить с цитированием
Старый 04.02.2013, 16:57   #24
Caca0
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 50
По умолчанию

это с++?мне бы на с
Caca0 вне форума Ответить с цитированием
Старый 04.02.2013, 18:51   #25
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Давайте посмотрим!
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 04.02.2013, 21:22   #26
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
Хорошо

Немного адаптировал под Си вариант Abstraction, хотя я думаю этого даже не нужно было делать.
Отличный код, особенно впечатлило :
Код:
 //Внимание, фокус
	for(int j=begin, k=i-1; j<k; ++j, --k) 
	{
                 std::swap(str[j], str[k]);
	}
Действительно не плохой вариант, есть чему поучиться.

Код:
/*
	Функции, выводящая символы каждого слова 
	в обратном порядке. При этом последовательность
	слов не меняется.
*/

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>		// Для использования функции isspace()

#define	SIZE 255

int main(void) 
{
	unsigned char String[SIZE];	// Строка - размером SIZE
	unsigned char temp;		// Вспомогательная переменная
	int i, j;			// Счетчики
	int begin = 0, end = 0;		// Индексы начала и конца
		
	system("chcp 1251 > nul");

	printf(" Введите строку:\n");

	fgets(String, SIZE, stdin);

	for(i = 0; String[i] != '\0'; i++)
	{
		if(isspace(String[i]))		// Проверка - является ли символ - пробелом 
		{
			/* Замена символов "от краев к центру", т.е. если символов в слове например 6, то
			0 - 6, 1 - 5, 2 - 4 и т.п, пока выполняется условие */
			for(j = begin, end = i - 1; j < end; j++, end--) 
			{
				/* Упрощенный вариант замены символов местами */
				temp = String[j];
				String[j] = String[end];
				String[end] = temp;
			}
			begin = i + 1;	// begin получает индекс начала следующего слова
		}
	}
	printf("%s", String);
	
	getch();
return 0;
}
Caca0 вот вам вариант, предполагаю тот который вам нужен.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 04.02.2013 в 21:25.
Bugrimov вне форума Ответить с цитированием
Старый 05.02.2013, 00:10   #27
Caca0
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 50
По умолчанию

спасибо что откликнулись, всё работает

Последний раз редактировалось Caca0; 05.02.2013 в 08:27.
Caca0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массивы. язык СИ. skauzer_blr Помощь студентам 8 10.04.2012 22:15
Язык Pelles C Массивы Kotik Wasil Помощь студентам 0 28.11.2010 21:37
Массивы, язык - C. xcyber Помощь студентам 9 19.10.2009 21:38
Массивы (язык С++) Ноберт Помощь студентам 3 24.08.2009 23:10
массивы(язык Си) bars1984 Помощь студентам 14 11.05.2009 21:15