ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

переобразование в цифры (c++)
  #1  
Старый 02.02.2008, 05:31
байкал
Новичок
Регистрация: 01.08.2007
Сообщений: 24
Провел на форуме:
48533

Репутация: 1
По умолчанию переобразование в цифры (c++)

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

Последний раз редактировалось байкал; 02.02.2008 в 05:38..
 
Ответить с цитированием

  #2  
Старый 02.02.2008, 05:35
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

Для первой записи - id = 1. При вносе всех последующих - max(id) + 1
 
Ответить с цитированием

  #3  
Старый 02.02.2008, 05:47
байкал
Новичок
Регистрация: 01.08.2007
Сообщений: 24
Провел на форуме:
48533

Репутация: 1
По умолчанию

Цитата:
Сообщение от Joker-jar  
Для первой записи - id = 1. При вносе всех последующих - max(id) + 1
Спасибо. Проблема в том что лист читается из файла и возможны дубликаты.
 
Ответить с цитированием

  #4  
Старый 02.02.2008, 13:46
spider-intruder
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме:
3886281

Репутация: 929


Отправить сообщение для spider-intruder с помощью ICQ
По умолчанию

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

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

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

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

  #5  
Старый 02.02.2008, 14:14
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

а массив ?

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; 02.02.2008 в 14:18..
 
Ответить с цитированием

  #6  
Старый 02.02.2008, 17:53
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

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;
}
 
Ответить с цитированием

  #7  
Старый 02.02.2008, 17:58
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

>>struct UID uid;
Ni0x , да , это более грамотно
, я просто предложил ...
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ