chmod в c++

Здравствуйте.

Возникла следующая проблема. Через веб-форму проге передаются права, которые нужно установить на файл, циферками. Т.е. 755, 644 и т.д. Скрипт принимает их в string. Функция chmod, по описанию на die.net, принимает в себя const char* и mode_t mode. Так вот. Вторым аргументом нужно передавать права, чтобы перед ними стоял 0, т.е. 0755, 0644 и т.д.

При переводе из string в int первый нолик обрезается. Помогите пожалуйста. Как можно сделать так, чтобы нолик не обрезался? может есть другие решения?

p.s. В перле есть такая штука как ассоциативные массивы - хэши. Может в c++ есть, что-то подобное?