Десятичная строка на символ - PullRequest
2 голосов
/ 27 октября 2011

Есть ли способ преобразовать числовую строку в char, содержащее это значение?Например, строка «128» должна быть преобразована в char, содержащую значение 128.

Ответы [ 4 ]

5 голосов
/ 27 октября 2011

Да ... Атой от С.

char mychar = (char)atoi("128");

Более ориентированный на C ++ подход был бы ...

template<class T>
    T fromString(const std::string& s)
{
     std::istringstream stream (s);
     T t;
     stream >> t;
     return t;
}

char mychar = (char)fromString<int>(mycppstring);
4 голосов
/ 27 октября 2011

Существует стиль C * atoi, но он преобразуется в int.Вам придется кастовать на char самостоятельно.

Для решения в стиле C ++ (что также более безопасно) вы можете сделать

string input("128");
stringstream ss(str);
int num;
if((ss >> num).fail()) { 
    // invalid format or other error
}

char result = (char)num;
1 голос
/ 27 октября 2011

Это зависит.Если char со знаком и 8 битами, вы не можете преобразовать «128» в char в базе 10. Максимальное положительное значение 8-битного значения со знаком равно 127.

Это действительно педантичноответ, но вы, вероятно, должны знать это в какой-то момент.

0 голосов
/ 27 октября 2011

Вы можете использовать atoi. Это даст вам целое число 128. Вы можете просто привести его к char, и все готово.

char c = (char) atoi("128");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...