Для определения рода слова “санкт-петербург” его необходимо поставить в именительный падеж единственного числа, получается форма: “Санкт-Петербург” . Тогда в зависимости от окончания в слове “Санкт-Петербург” можно определить род.
Слово “санкт-петербург” употребляется в мужском роде (Потому как в начальной форме слова “Санкт-Петербург” окончание [а], [я] или [ ] нулевое).Полный морфологический разбор Cуществительного “санкт-петербург” находится по ссылке