Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Генерация массива символов

Ответить
Настройки темы
C/C++ - [решено] Генерация массива символов

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет.

Вообщем нужно сделать случайную генерацию имён для файлов.
Символы должны браться из специального массива.
Имя должно быть в виде char name[10].

char symb[] = "asdfghjkl"; // массив с символами

Пробовал делать через rand(), но он похоже подходит только для int.

Может есть какие-нибудь мысли как это реализовать?

Спасибо.

Отправлено: 04:53, 28-01-2011

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


в англ языке 26 букв. делаем rand от 1 до 26. Потом пишем функцию, возвращающую букву по выпавшему порядковому номеру. вот и все

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 07:37, 28-01-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


Цитата Rain789:
Пробовал делать через rand(), но он похоже подходит только для int. »
нет, он не подходит для инт, я тебе открою секрет - ранд выдает значения от 0 до 1. но умные люди говорят:
rand()*x+y дает значение в пределах [y,x+y].
А еще обратиться к любому элементу массива можно через его порядковый номер. скажем
symb[10]
так почему бы не объеденить эти две идеи в такие строчки (хотя можно и одной)
int i = rand()*(symb.length-1); //случайное число от 0 до длинны массива
char otvet = symb[i];
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:55, 28-01-2011 | #3


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
		srand((unsigned)time(NULL));
		char symb[] = "asdfghjkl";
		char n_name[10];

		unsigned int j;
		for (int i = 0; i < 9; i++)
		{
			j = rand()%9;
			n_name[i] = symb[j];
		}
		m_Size = n_name; // присваиваем CString значение m_name для вывода в Edit Control
Сделал, но не работает, точнее работает, но периодически выдаёт какие то левый символы, и выходит за рамки размера имени.
где то ошибка.( чувство будто я в цифрах заплутал.

Отправлено: 17:32, 28-01-2011 | #4


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Решил проблему так:
Код: Выделить весь код
		srand((unsigned)time(NULL));
		char symb[10] = "asdfghjkl";
		char n_name[10] = "asdfghjkl"; // присвоил n_name какое то значение, ибо по какой то причине она забивалась мусором.

		unsigned int j;
		for (int i = 0; i < 9; i++)
		{
			j = rand()%9;
			n_name[i] = symb[j];
		}
		m_Size = n_name;
Проследил за переменными и оказалось что n_name получает какое-то косячное значение.
Вроде работает.

Отправлено: 18:26, 28-01-2011 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Генерация массива символов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Генерация PDF на основе шаблонов zvezda_t Вебмастеру 4 09-02-2010 14:45
[решено] генерация fileinstall morgan1991 AutoIt 3 30-03-2009 18:53
[решено] Генерация комбинаций morgan1991 AutoIt 13 29-01-2009 23:33
[решено] JavaScript. Генерация html-кода. System Failure Вебмастеру 3 20-07-2007 15:28
Генерация кода <a>. Perl. benya Вебмастеру 1 18-08-2005 19:54




 
Переход