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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2011, 08:01   #1
gas777
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 12
По умолчанию Через командную строку передать два слова и целое число N.

Помогите составить программу !
Через командную строку передать два слова и целое число N. N раз распечатать слово большей длины в прямом и обратном порядке.
gas777 вне форума Ответить с цитированием
Старый 23.06.2011, 08:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) параметры командной строки ВСЕГДА передаются как строки. Это так исторически сложилось ещё с DOS времён (а может и раньше).
Т.е. Ваша программа получает количество параметров и может получить любой из этим параметров по номеру.
Что с ними она дальше будет делать - это уже правила использования (соглашения) данной программы - где там слова, где числа, где даты - задаётся в самой программе - а пользователь должен правила использования соблюдать.

2) по сути задание очень простое. сравнить длины первого и второго параметра - строку с большей длиной поместить в переменную. Третий параметер преобразовать из строки в число.
в цикле for N раз вывести текст из переменой.
всё.



p.s. я не знаю C/C++ поэтому не могу помочь (точнее не хочу ) конкретным примером кода. Но поверьте - это очень простое задание!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.06.2011, 08:46   #3
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Код:
#include <iostream>

int func_out(char *a1)
{
	//В прямом виде
	std::cout << a1 << '\n';

	//В перевернутом виде
	for (int i = strlen(a1) - 1; i >= 0; i--)
	{
		std::cout << a1[i];
	}
	std::cout << '\n';

	return 0;
}

int main (int argc, char *argv[])
{
	/*
		argc - количество параметров
		argv - массив параметров/аргументов

		argv[1] - первое слово
		argv[2] - второе слово
		argv[3] - сколько раз вывести
	*/

	//Проверка, введено ли 3 параметра (самый первый аргумент (нулевой) - это откуда вызвана программа)
	if (argc != 4)
	{
		std::cout << "I need 3 arguments! Exit\n";
		return 0;
	}

	//Ищем самое длинное слово
	int len_1 = strlen(argv[1]), len_2 = strlen(argv[2]);
	char high_slovo;
	if (len_1 > len_2)
	{
		high_slovo = 1;
	}
	else
	{
		if (len_1 == len_2)
		{
			std::cout << "Arg 1 == arg 2, exit\n";
			return 0;
		}

		high_slovo = 2;
	}

	//Вывод N раз
	//*slovo - указатель на самое длинное слово
	int count = atoi(argv[3]);//Переводим строку в число
	char *slovo = argv[high_slovo];
	for (int i = 0; i < count; i++)
	{
		func_out(slovo);
	}

	return 0;
}

Последний раз редактировалось zotox; 23.06.2011 в 08:58.
zotox вне форума Ответить с цитированием
Старый 23.06.2011, 18:16   #4
gas777
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от zotox Посмотреть сообщение
Код:
#include <iostream>
.....
	return 0;
}
по чему то выводит "I need 3 arguments! Exit" и программа закрывается !


_____________
Избегайте чрезмерного цитирования. Удаляйте ненужное, пожалуйста!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 24.06.2011 в 08:44.
gas777 вне форума Ответить с цитированием
Старый 23.06.2011, 18:20   #5
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от gas777 Посмотреть сообщение
по чему то выводит "I need 3 arguments! Exit" и программа закрывается !
Всё правильно. Нужно через командную строку программу с параметрами запускать !
Или создать ярлык Windows и туда добавить параметры.
An1ka вне форума Ответить с цитированием
Старый 23.06.2011, 19:59   #6
gas777
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от An1ka Посмотреть сообщение
Всё правильно. Нужно через командную строку программу с параметрами запускать !
Или создать ярлык Windows и туда добавить параметры.
Спасибо! все понял как работает)
gas777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана матрица размера MxN и целое число К(1<K<M). Удалить строку матрицы с номером К bolshe_ne_RUS Паскаль, Turbo Pascal, PascalABC.NET 6 14.06.2011 16:26
Отправка почты из Excel через командную строку zao Microsoft Office Excel 3 06.08.2010 12:10
скрыть командную строку Morphling Помощь студентам 0 01.02.2010 23:35
Даны два слова одинаковой длины. Присвоить переменной К число, равное количеству попарно одинаковых букв. dimon_home Паскаль, Turbo Pascal, PascalABC.NET 1 16.06.2009 08:31
Передача хэндла через командную строку MaTBeu Win Api 9 29.11.2008 15:30