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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2011, 14:13   #1
Inferno1990
 
Регистрация: 15.05.2011
Сообщений: 4
По умолчанию Обработка символьной информации и объктно-ориентированное программирования

Добрый день товарищи!! Очень нужна помощь по двум заданиям, они могут показаться кому-то не сложные, наверное так и есть, но я в этом деле начинающий, поэтому кто сможет, помогите пожалуйста...1) Распечатать в порядке,обратном алфавитному,все буквы, которые входят в текст не менее трех раз. 2)Дата задается в формате число\месяц\год.Реализовать(с учетом високосных годов):а) вычитание из даты определенного пользователем количества дней;б)Определение количества дней между двумя датами..... Если несложно, набросьте хотя бы приблизительный код по зад
Inferno1990 вне форума Ответить с цитированием
Старый 15.05.2011, 16:42   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

1) Распечатать в порядке,обратном алфавитному,все буквы, которые входят в текст не менее трех раз.

Код:
#include <string>
#include <vector>
#include <set>

#include <algorithm>
#include <iterator>
#include <iostream>

#include <locale>

int main()
{
	setlocale(LC_ALL, "");

	std::string text = 
		"They each had their own room and all. "
		"They were both around seventy years old, or even more than that. "
		"They got a bang out of things, though-in a haif-assed way, of course. "
		"I know that sounds mean to say, but I don't mean it mean. "
		"I just mean that I used to think about old Spencer quite a lot, "
		"and if you thought about him too much, you wondered what the heck he was still living for. "
		;

	typedef std::multiset<char> Z;
	Z z;

	std::copy(
		text.begin(), text.end(), std::inserter(z, z.begin())
		);

	const std::locale l("");

	std::vector<char> v;
	for (Z::const_iterator it = z.begin(); it != z.end(); it = z.upper_bound(*it))
	{
		if (std::isalpha(*it, l) && z.count(*it) >= 3)
			v.push_back(*it);
	}

	typedef std::ostream_iterator<char> O;
	std::copy(v.begin(), v.end(), O(std::cout, " "));
	std::cout << std::endl;

	return 0;
}
Пример работы программы: http://codepad.org/zXSEehwq
Rififi вне форума Ответить с цитированием
Старый 19.05.2011, 22:17   #3
Inferno1990
 
Регистрация: 15.05.2011
Сообщений: 4
По умолчанию

Cпс большое, правда есть библиотеки с которыми я не очень ещё дружу)), тут рекомендованны string.h ctype.h... но все равно спс
Inferno1990 вне форума Ответить с цитированием
Старый 28.05.2011, 18:38   #4
Inferno1990
 
Регистрация: 15.05.2011
Сообщений: 4
По умолчанию

Подскажите пожалуйста, что нужно исправить в этом коде, чтобы он заработал?
#include "iostream"
#include "string"
#include "conio.h"
using namespace std;
int main()
{
char* s1 = "eertyre";;// задаем первоначальную строку
char* s2;// задаем строку, в которой будут входить лишь те буквы, которые входят в строку s1 не менее 3х раз
int b=7;//dlina vvedenou ctroki
int p=0;// c4et4ik cumBoloB B cTRoke s2
for(int i=0; i<b-2; i++)
{
for(int j=1;j<b-1;j++)
{
for( int k=2;k<b;k++)
if((s1[i]==s1[j])&&(s1[i]==s1[k]))
{
s2[p]=s1[i];//заносим в массив s2 все буквы, которые повторяются не менее трех раз
p++;
}
}
}
int i=1;
for (i=1;i<p;i++)
{
if(s2[i]>s2[i-1])
{
int k=s2[i];
s2[i]=s2[i-1];
s2[i-1]=k;
}
}
cout<<s2<<endl;
getch();
}
Задание. Распечатать в порядке,обратном алфавитному,все буквы, которые входят в текст не менее трех раз.
Inferno1990 вне форума Ответить с цитированием
Старый 28.05.2011, 19:41   #5
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Попробуйте этот код для сортировки
Код:
	for (int x = p; x> 0; x--)
	{
		for (int i = 0; i <x-1; i++)
		{
		if (S2[i] > S2[i+1])
			{
			temp = S2[i];
			S2[i] = S2[i+1];
			S2[i +1] = temp;
			}
		}
            }
Anubys вне форума Ответить с цитированием
Старый 28.05.2011, 20:27   #6
Inferno1990
 
Регистрация: 15.05.2011
Сообщений: 4
По умолчанию

При компиляции он выдает ошибку на этой строчке:s2[p]=s1[i];//заносим в массив s2 все буквы, которые повторяются не менее трех раз.... почему?
Inferno1990 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка символьной информации kop Общие вопросы C/C++ 2 17.04.2011 02:10
C++.обработка символьной информации Vladka2 Фриланс 2 10.01.2010 02:25
Обработка символьной информации (C++) madduck Помощь студентам 1 19.12.2009 02:05
С++ Обработка символьной информации Помогите Kachagar Помощь студентам 2 03.07.2009 13:33