十进制字符串转char

发布于 2024-12-12 06:54:02 字数 102 浏览 0 评论 0原文

有没有办法将数字字符串转换为包含该值的 char ?例如,字符串“128”应转换为保存值 128char

Is there a way to convert numeric string to a char containing that value? For example, the string "128" should convert to a char holding the value 128.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

忱杏 2024-12-19 06:54:02

是的...来自 C 的 atoi。

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);

Yes... atoi from C.

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

A more C++ oriented approach would be...

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);
み格子的夏天 2024-12-19 06:54:02

有 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;

There's the C-style atoi, but it converts to an int. You 'll have to cast to char yourself.

For a C++ style solution (which is also safer) you can do

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

char result = (char)num;
匿名。 2024-12-19 06:54:02

这取决于。如果 char 有符号且为 8 位,则无法将“128”转换为以 10 为基数的 char。有符号 8 位值的最大正值为 127

。这是一个非常迂腐的答案,但你可能在某个时候应该知道这一点。

It depends. If char is signed and 8 bits, you cannot convert "128" to a char in base 10. The maximum positive value of a signed 8-bit value is 127.

This is a really pedantic answer, but you should probably know this at some point.

孤星 2024-12-19 06:54:02

您可以使用atoi。这将得到整数 128。您只需将其转换为 char 即可。

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

You can use atoi. That will get you the integer 128. You can just cast that to a char and you're done.

char c = (char) atoi("128");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文