Просмотр полной версии : переобразование в цифры
Допустим у меня есть лист имен. Мне нужно для каждого имени создать уникальную цифру, ID. Как можно это сделать наиболее эффективно?
Например,
int idEgor = computeID("Egor");
int idPavel = computeID("Pavel");
Joker-jar
02.02.2008, 05:35
Для первой записи - id = 1. При вносе всех последующих - max(id) + 1
Для первой записи - id = 1. При вносе всех последующих - max(id) + 1
Спасибо. Проблема в том что лист читается из файла и возможны дубликаты.
spider-intruder
02.02.2008, 13:46
Возьми Ascii код каждой буквы фамилии :-) Будет что то типа
фамилия Abcde код 6566676869
Изврат зато примитив
При повторении фамилии и цифра будет такой же )
а массив ?
Users[1] = computeID("Egor");
Users[2] = computeID("Pavel");
или двумерный...
Users[1,1] = "Name: Egor";
Users[1,2] = computeID("Egor");
Users[2,1] = "Name: Pavel";
Users[2,2] = computeID("Pavel");
Jes, о да, очень грамотно, а если 300 имен будет, ты тоже так заполнять будешь?
#include <stdio.h>
#include <stdlib.h>
struct UID
{
char *name;
unsigned short id;
}*PUID;
int main(int argc, char *argv[])
{
int i;
struct UID uid;
char *names[] = {"Egor", "Alex", "Mixail", "Sergey", "Igor"};
srand(time());
for(i = 0; i < 5; i++)
{
uid.name = names[i];
uid.id = i + rand() % 10;
printf("uid.name: %s\nuid.id: %d\n", uid.name, uid.id);
}
system("PAUSE");
return 0;
}
>>struct UID uid;
Ni0x , да , это более грамотно
, я просто предложил ...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot