Сохранение числовых значений в массиве TCHAR в переменной INTEGER в VC++. (в среде UNICODE)

Я задал вопрос, очень похожий на этот в потоке: https://stackoverflow.com/questions/11259474/store-the-numericals-in-char-array-into-an-integer-variable-in-vc,

W.R.T. выше поток, мой вопрос заключается в следующем: Я работаю в среде UNICODE. Таким образом, TCHAr, вероятно, будет рассматриваться как wchar.

Мой сценарий выглядит следующим образом: (С++)

В TCHAR a[10] массив a[] содержит такие элементы (числа), как «1», «2», «3» и т. д....

Скажем a[0] = '1'; a1 = '2'; а[2] = '3';

Теперь a[] хранит 3 символа «1», «2» и «3». Я хочу сохранить это в int как 123 (целое число 123).

Как добиться этого на С++?

Заранее спасибо.


person codeLover    schedule 29.06.2012    source источник


Ответы (1)


Во-первых, вы должны завершить строку нулем. Иначе как узнать, где остановиться? Тогда есть функция _ttoi() специально для этого.

a[3] = 0;
int n = _ttoi[a];

Вы должны понимать нулевой бит завершения. В зависимости от того, как вы заполняете a символами (цифрами), логика определения конца строки может различаться.

person Seva Alekseyev    schedule 29.06.2012
comment
Итак, если я сделаю a[3] = '\0'; смогу ли я использовать _ttoi()? - person codeLover; 29.06.2012
comment
да. _ttoi ожидает строку с завершающим нулем. То, как вы показываете свою строку, совершенно неизвестно, что находится в [3], [4] и так далее. В зависимости от того, как вы получили эту строку (о чем вы не говорите), она может уже заканчиваться нулем. Я просто хотел убедиться. - person Seva Alekseyev; 29.06.2012