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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2010, 16:50   #1
casekey
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 95
По умолчанию WinApi. Строки

добрый день всем. Нужно написать программу на С++ winapi, по глупости (а может и нет) сначала написал все под консоль ( с винапи дел не имел), а потом думаю разберусь и портирую.

Оказалось что в винапи очень хитро дело со строками. string, char[] не воспринимает. Есть 2 задачи (между собой не связаны): 1) Найти во введенной строке слова с буквами "А" и из тех где букв А более 2 составить новый текст.
2) Определить среднее арифметическое положительных чисел,
лежащих после минимального значения в массиве В[1..N].
Числа, расположенные до минимального рассортировать по возрастанию.

Для 1:
Код:
void inputtext(string &story)
{
	cout << " Vvedite text : " << endl;
	getline(cin,story);
	cout << endl;
}

void printtext(string &story)
{	
	cout << story;
	cout << endl;
}

string edittext(string &story)
{
	int i, count, last, ind;
	i = count = last = ind = 0;
	char buf[200];
	strcpy(buf,"");
	string newstory = "";
	while(story[i]!=NULL)
	{
		if ((story[i] == 'A') || (story[i] == 'a'))
			count++;
		if ((story[i] == ' ') || (story[i+1] == NULL))
		{
			if (count > 2)
			{
				for (int j = last; j<=i; j++)
				{
					buf[ind] =  story[j];
					ind++;
				}
			}
			count = 0;
			last = i;
		}
	i++;
	}
buf[ind] = NULL;
newstory = buf;
return newstory;
}
Для 2:
Код:
#include "odnomer.h"
#include <iostream>
#include "string.h"

using namespace std;

void initmass(int a[], int count)
{
	for (int i = 0; i<count; i++)
	{
		cout << " Vvedite element " << i << " : ";
		cin >> a[i];
	}
}

void printmass(int a[], int count)
{
	for (int i = 0; i<count; i++)
		cout << a[i] << "  ";
}

int GetMinElemIndex(int a[], int count)
{
	int Min = a[0];
	int iMin = 0;
	for (int i = 1; i<count; i++)
	{
		if (a[i]<Min)
		{
			Min = a[i];
			iMin = i;
		}
	}
	return iMin;
}

float SrArifm(int a[], int count)
{
	float result;
	int n = GetMinElemIndex(a,count);
	n++;
	int summ = 0;
	for (int i = n; i < count; i++)
	{
		if (a[i]>0)
		{
			summ+=a[i];
		}
	}
	result = summ / (count-n);
	return result;
}

void SortMass(int a[], int count)
{
	int n = GetMinElemIndex(a,count);
	int buf;
	for (int i = 0; i<n; i++)
	{
		for (int j = i+1; j<n; j++)
		{
			if (a[i]>a[j])
			{
				buf = a[i];
				a[i] = a[j];
				a[j] = buf;
			}
		}
	}
}
Вопрос больше в том: для 2) как мне вывести массив в edit
для 1) как переделать под winapi
casekey вне форума Ответить с цитированием
Старый 18.12.2010, 22:18   #2
casekey
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 95
По умолчанию

ну со 2, более-менее шерстя гугл разобрался.

осталось над первым подумать. Вообще заданий 5, они все написаны, но проблема - перенести все под винапи
casekey вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Qt vs. WinAPI Зелёный_спец Общие вопросы C/C++ 3 12.03.2010 15:34
БД на WinApi yngwie Win Api 3 09.03.2009 20:54
WinApi и C++ titan-prog Win Api 1 17.07.2008 21:02
WinApi Andr Безопасность, Шифрование 3 17.06.2007 13:38