Есть ли способ преобразования числовой строки в char
, содержащей это значение? Например, строка «128» должна преобразовать в char
значение 128
.
Да ... atoi от C.
char mychar = (char)atoi("128");
Более ориентированный на C ++ подход будет ...
template
T fromString(const std::string& s)
{
std::istringstream stream (s);
T t;
stream >> t;
return t;
}
char mychar = (char)fromString(mycppstring);
Есть 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;
Это зависит. Если char
подписан и 8 бит, вы не можете преобразовать «128» в char
в базу 10. Максимальное положительное значение подписанного 8-битного значения - 127.
Это действительно педантичный ответ, но вы, вероятно, должны это знать в какой-то момент.
Вы можете использовать atoi
. Это даст вам целое число 128. Вы можете просто передать это в char
, и все готово.
char c = (char) atoi("128");