PDA

Просмотр полной версии : переобразование в цифры


байкал
02.02.2008, 05:31
Допустим у меня есть лист имен. Мне нужно для каждого имени создать уникальную цифру, ID. Как можно это сделать наиболее эффективно?
Например,
int idEgor = computeID("Egor");
int idPavel = computeID("Pavel");

Joker-jar
02.02.2008, 05:35
Для первой записи - id = 1. При вносе всех последующих - max(id) + 1

байкал
02.02.2008, 05:47
Для первой записи - id = 1. При вносе всех последующих - max(id) + 1
Спасибо. Проблема в том что лист читается из файла и возможны дубликаты.

spider-intruder
02.02.2008, 13:46
Возьми Ascii код каждой буквы фамилии :-) Будет что то типа

фамилия Abcde код 6566676869

Изврат зато примитив

При повторении фамилии и цифра будет такой же )

Jes
02.02.2008, 14:14
а массив ?

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");

Ni0x
02.02.2008, 17:53
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;
}

Jes
02.02.2008, 17:58
>>struct UID uid;
Ni0x , да , это более грамотно
, я просто предложил ...