std::string, содержащий '\0'
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 23.11.05 10:04
Оценка:
Привет всем.

Решаю задачу проверки форматов файлов по сигнатурам.
Для этой цели завел честный C-массив std::string'ов, примерно так:
std::string signatures[] = 
{
    "\xFF\x34\x35",
    "\xFF\x50\x36",

    // и т.д., сигнатуры высосаны из пальца.
};

Столкнулся с совершенно глупой проблемой: некоторые сигнатуры содержат символ '\x00', в народе известный как '\0'.
Таким образом, статическая инициализация массива C-строками отпадает.

Понятно, что workaround придумать можно.
Интересует, как решить эту проблему наиболее кошерно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.