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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2010, 13:06   #11
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Для элементов string существуют свои функции. В частности длина строки:
Код:
str.length();
Что касается функции, то покажите ее весь код.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 01.06.2010, 13:51   #12
Гончий
Пользователь
 
Регистрация: 29.05.2010
Сообщений: 21
По умолчанию

Спасибо, буду знать)


Код:
#include <windows.h>
#include <string>
using std::string;

BOOL WINAPI DllMain(HINSTANCE hinst, DWORD fdwReason, LPVOID)
{
	switch(fdwReason)
	{
		case DLL_PROCESS_ATTACH:
			break;
		case DLL_PROCESS_DETACH:
			break;
	}
	return TRUE;
}

void WINAPI Srav(string s1, string s2, bool OneMore)
{
	int ii;
	OneMore = TRUE;
	if (strlen(s1) > strlen(s2)) OneMore = TRUE;
	else
		if (strlen(s1) < strlen(s2)) OneMore = FALSE;
		else
		{
			for (ii = strlen(s1) - 1; ii > 1; ii++)
			{
				if (s1[ii] > s2[ii])
				{
					OneMore = TRUE;
					break;
				}
				else
				{
					if (s1[ii] < s2[ii])
					{
						OneMore = FALSE;
						break;
					};
				};
			};
		};	
}

void WINAPI Sort(string[] iArray, const int Mas_4isla_Razmer) 
{ 
	int ii, jj;
	string yyashik;
	bool Flag;
	Flag = TRUE;
	for (ii = 0; ii < Mas_4isla_Razmer - 1; ii++) 
	{ 
	    for(jj = ii + 1; jj < Mas_4isla_Razmer; jj++) 
		{ 
			Srav(iArray[ii], iArray[jj], Flag); 
			if (Flag)
			{
				yyashik = iArray[jj]; 
				iArray[jj] = iArray[ii]; 
				iArray[ii] = yyashik; 
			} 
		} 
	}
}
Гончий вне форума Ответить с цитированием
Старый 01.06.2010, 13:55   #13
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
if (strlen(s1) < strlen(s2)) OneMore = FALSE;
else
{
	for (ii = strlen(s1) - 1; ii > 1; ii++)
	{
		if (s1[ii] > s2[ii])
		{
			OneMore = TRUE;
			break;
		}
		else
		{
			if (s1[ii] < s2[ii])
			{
				OneMore = FALSE;
				break;
			};
		};
	};
};
Это ещё что такое?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 01.06.2010, 13:57   #14
Гончий
Пользователь
 
Регистрация: 29.05.2010
Сообщений: 21
По умолчанию

Сравнение длинных чисел через строки. Булевская OneMore истина, когад больше первое, иначе ложь
Гончий вне форума Ответить с цитированием
Старый 01.06.2010, 14:01   #15
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Вы красный цвет от черного отличаете?
Я спрашивал про точки с запятой(';') в конце блоков кода.
Это не определения класса!
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 01.06.2010, 14:04   #16
Гончий
Пользователь
 
Регистрация: 29.05.2010
Сообщений: 21
По умолчанию

Он у меня постоянно ругается, что их не хватает. Убрал, скомпилировал -ничего не изменилось

Зато есть такая:
error C2146: syntax error : missing ';' before identifier 'iArray'

В строчке:
void WINAPI Sort(string[] iArray, const int Mas_4isla_Razmer)
Гончий вне форума Ответить с цитированием
Старый 01.06.2010, 14:07   #17
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Переименуйте: iArray обозночает массив, можете его назвать string [] massive;
Или так, но я не уверен, лучше первым способом, - string iArray - тоже вроде как массив элементов string.
А то получается string [] iArray - массив массивов с непонятным первым измерением - нельзя передовать в ф-ию двумерный массив с пустыми обоими измерениями, только с самым правым(или левым - что-то одно).
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Syuf; 01.06.2010 в 14:09.
Syuf вне форума Ответить с цитированием
Старый 01.06.2010, 18:44   #18
Гончий
Пользователь
 
Регистрация: 29.05.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Syuf Посмотреть сообщение
Переименуйте: iArray обозночает массив, можете его назвать string [] massive;
Или так, но я не уверен, лучше первым способом, - string iArray - тоже вроде как массив элементов string.
А то получается string [] iArray - массив массивов с непонятным первым измерением - нельзя передовать в ф-ию двумерный массив с пустыми обоими измерениями, только с самым правым(или левым - что-то одно).
А в чем разница между massive и iArray? И там, и там массив подразумевается же

"string [] iArray"
Так вы мне посоветовали)
Гончий вне форума Ответить с цитированием
Старый 01.06.2010, 19:12   #19
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

В C++ нельзя писать string [] iArray. только string iArray[] или string* iArray, что эквивалентно
netrino вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение из Delphi к DLL написанной на C++ smirnoff843 Общие вопросы Delphi 6 21.03.2017 11:13
Как использовать в Delphi-программе функции из DLL, написанной на C# АТИКОН Общие вопросы Delphi 12 19.03.2013 08:28
Использование системного времени или даты в программе DuM4uK Общие вопросы Delphi 4 13.10.2009 15:13
Откат написанной программы фЁдОр Свободное общение 13 20.12.2007 11:35
Использование длл Anatolij Win Api 1 02.01.2007 19:54