3 / 3 / 0
Регистрация: 27.03.2019
Сообщений: 42

Генератор имён

10.12.2020, 12:38. Показов 2739. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ДД! Подскажите, пожалуйста, как создать (объявить) массив, чтоб его элементы содержали слово (или присвоить)? К примеру, имеется массив a[i], i = 1..n, a[1]="name1", a[2]="name2", .. a[n]="nameN" Хочу попробовать создать программу типа генератор имён. Я полный новичок в Си, так что прошу объяснить на пальцах. Заранее спасибо)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2020, 12:38
Ответы с готовыми решениями:

Генератор имен
Здравствуйте.Подскажите пожалуйста алгоритм для генерации имен. Если есть возможность,то подскажите пожалуйста строкой кода. Думала над...

Генератор имён
https://www.cyberforum.ru/php-beginners/thread1705961.html А как сделать чтобы была кнопка "Сгенерировать имя", а над ней надпись...

Генератор случайных имен
Я хочу сделать генератор имен, с учетом частоты их использования, допустим есть файл с именами: 0.0601011381337 Александр ...

20
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.12.2020, 12:59
C
1
2
3
4
5
#define N 100;
...
char a[N][10];
for(i=0; i<N; i++)
  sprintf(a[i], "name%d", i+1);
Псевдокод
0
3 / 3 / 0
Регистрация: 27.03.2019
Сообщений: 42
10.12.2020, 13:23  [ТС]
А разве цикл не будет заносить одно и тоже имя во все элементы массива?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.12.2020, 15:17
Цитата Сообщение от Alex_biziuk Посмотреть сообщение
А разве цикл не будет заносить одно и тоже имя во все элементы массива?
Нет. Прочитайте функции семейства printf.
0
3 / 3 / 0
Регистрация: 27.03.2019
Сообщений: 42
10.12.2020, 15:54  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
Прочитайте функции семейства printf
Так, про это я прочитала, а вот еще вопрос: зачем в функции spintf добавлять к i 1, ведь в цикле фор и так уже счетчик i увеличивается?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.12.2020, 15:56
Цитата Сообщение от Alex_biziuk Посмотреть сообщение
зачем в функции spintf добавлять к i 1,
Можно и не прибавлять. Тогда получится name0, name1 и так далее. Дело вкуса.
0
3 / 3 / 0
Регистрация: 27.03.2019
Сообщений: 42
10.12.2020, 16:07  [ТС]
Все теперь понятно кроме одного: как мне имена теперь туда засунуть? Ведь я получу только name0, name1 и тд
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
10.12.2020, 17:08
Цитата Сообщение от Alex_biziuk Посмотреть сообщение
как мне имена теперь туда засунуть? Ведь я получу только name0, name1 и тд
Думаю для генератора имен, лучше создать массив имен. Например массив из 100 разных имен. Ну и генерировать случайное число от 0 до 100. Где каждое сгенерированное число, будет указывать на индекс случайного имени, в массиве имен.

Добавлено через 2 минуты
Список имен, удобней хранить в файле.txt, при необходимости, всегда можно считать список в массив.
0
3 / 3 / 0
Регистрация: 27.03.2019
Сообщений: 42
10.12.2020, 18:09  [ТС]
Цитата Сообщение от мама Стифлера Посмотреть сообщение
Ну и генерировать случайное число от 0 до 100. Где каждое сгенерированное число, будет указывать на индекс случайного имени, в массиве имен.
Да да да, я так и хотела сделать в самом начале, но у меня знаний на это вообще не хватает. Может, Вы сможете мне как-нибудь помочь?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.12.2020, 19:49
Цитата Сообщение от Alex_biziuk Посмотреть сообщение
как мне имена теперь туда засунуть
Куда?

Добавлено через 3 минуты
Цитата Сообщение от мама Стифлера Посмотреть сообщение
и генерировать случайное число от 0 до 100.
Не вижу каких-то преимуществ. Зачем? Если задача так не стоит, то и смысла нет. Только забот на больную голову

Добавлено через 8 секунд
Цитата Сообщение от мама Стифлера Посмотреть сообщение
и генерировать случайное число от 0 до 100.
Не вижу каких-то преимуществ. Зачем? Если задача так не стоит, то и смысла нет. Только забот на больную голову
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
10.12.2020, 19:51
Цитата Сообщение от Байт Посмотреть сообщение
Не вижу каких-то преимуществ. Зачем? Если задача так не стоит, то и смысла нет
Ну я по другому просто не представляю, как генерировать имена
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.12.2020, 19:59
Цитата Сообщение от мама Стифлера Посмотреть сообщение
я по другому просто не представляю
см. пост 2.
0
3 / 3 / 0
Регистрация: 27.03.2019
Сообщений: 42
10.12.2020, 20:02  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
Куда?
Ну, к примеру, если я вместо значения name подставлю какое-либо имя, то оно же будет во всех элементах массива, или я что-то упускаю
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.12.2020, 20:04
Цитата Сообщение от Alex_biziuk Посмотреть сообщение
или я что-то упускаю
Скорее всего, именно так.
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
10.12.2020, 20:14
Цитата Сообщение от Байт Посмотреть сообщение
см. пост 2.
Цитата Сообщение от Alex_biziuk Посмотреть сообщение
или я что-то упускаю
Я тоже явно что то упускаю, не понимаю как с помощью строки sprintf(a[i], "name%d", i+1);
рандомить имена
0
3 / 3 / 0
Регистрация: 27.03.2019
Сообщений: 42
10.12.2020, 20:22  [ТС]
Цитата Сообщение от мама Стифлера Посмотреть сообщение
как с помощью строки sprintf(a[i], "name%d", i+1);
рандомить имена
Это не для рандома, а для заполнения элементов массива именами

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
Скорее всего, именно так
Слёзно прошу объяснить, почему не так
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.12.2020, 20:54
Цитата Сообщение от Alex_biziuk Посмотреть сообщение
Это не для рандома, а для заполнения элементов массива именами
Истина глаголит вашими устами!

Добавлено через 29 минут
Alex_biziuk, Есть правило 4.6. Все разговоры по поводу задачи - в теме. Ни в коем случае не через личку. Обычно я на это сильно ругаюсь. Тебе сегодня повезло - я добрый!
Ладно, к делу.
Про printf/ sprintf читала? Видимо, плохо
sprintf(sss, "..%d", i) вставляет вместо этой закорючки значение числа i.
И получается name0, name1, name2 ... - все разные. Не это ли тебе нужно?
1
136 / 90 / 48
Регистрация: 16.08.2016
Сообщений: 362
10.12.2020, 21:00
Я так понял ей нужны совсем разные имена, типа Андрей, Сергей и т.д. А не просто Андрей1, Андрей2
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.12.2020, 21:05
Цитата Сообщение от Vadim Borisov Посмотреть сообщение
Я так понял
А я не понял. В угадайку играть не хочу.
0
из племени тумба-юбма
 Аватар для мама Стифлера
2523 / 1819 / 419
Регистрация: 29.11.2015
Сообщений: 8,857
Записей в блоге: 15
10.12.2020, 22:05
Так я сразу это понял, имена ведь, а Байт меня окончательно запутал

Добавлено через 56 минут
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
 
int main(void)
{
    setlocale(LC_ALL, "Russian");
    char name[100][21];
    int rng, all = 0;
    FILE *f1 = fopen("name.txt", "r");
    do
    {
        fscanf(f1, "%s", name[all]);
        all++;
    }
    while(!feof(f1));
 
    srand(time(NULL));
    for(int i=0; i<all; i++)
    {
        rng = rand()%100; //MIN + rand()%((MAX+1-MIN)
        printf("%s ", name[rng%all]);
    }
    fclose(f1);
    return 0;
}

Исходный файл - name.txt:
Code
1
Август Августин Авраам Аврора Агата Агафон Агнесса Агния Ада Аделаида Аделина Адонис Акайо Акулина Алан Алевтина Александр Александра Алексей Алена Алина Алиса Алла Алсу Альберт Альбина Альфия Альфред Амалия Амелия Анастасий Анастасия Анатолий Ангелина Андрей Анжела Анжелика Анисий Анна Антон Антонина Анфиса Аполлинарий Аполлон Ариадна Арина Аристарх Аркадий Арсен Арсений Артем Артемий Артур Архип Ася
рандомный вывод:
Code
1
2
3
4
Ася Александра Аполлинарий Альберт Анжелика Аделина Анжелика Александра Александра Август Авраам Агния Аполлон Аделина Анастасий Агата Александра Августин Александра Анжела Агафон Адонис Амелия Авраам Алена Ангелина Авраам Аделаида Анжелика Анжелика Ариадна Агнесса Анастасия Антонина Артемий Алевтина Александр Александр Авраам Алевтина Ада Авраам Анастасия Альбина Ангелина Альфред Анфиса Александра Анисий Алевтина Анатолий Алена Адонис Амелия Анастасий
--------------------------------
Process exited after 0.1642 seconds with return value 0
Для продолжения нажмите любую клавишу . . .
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2020, 22:05
Помогаю со студенческими работами здесь

Генератор имен сайтов
Классика жанра, подскажите пожалуйста кто знает , требуется сгенерировать слова, ограничения: 1) буквы латиница прописные, цифры и...

Как создать генератор имён?
Нужно создать генератор имён, но не знаю как. Чтобы 1 часть слова выбирало из списка, типу 'Паутино', 'Лисо', 'Рыбье'... А вторую...

Генератор имён, фамилий и отчеств
Нужна помощь в написании программы на c++ Программа должна из файла брать данные( к примеру есть текстовик с 10000 именами) и по...

Что и как сделать генератор имен или ников?
Здравствуйте. Интересует такой вопрос, как сделать генератор ников? Видел я сайты, где нужно выбрать какая будет первая буква, либо...

Нужно в компонет Image Ставить случайное имя. т.е. нужен генератор случайных имен
Интервал скриншота 1 минуты, когда сохраняется имя стоит одно, и соответственно, файл всегда заменяется, а нужно так что бы он не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru