我想知道我是否可以使用static_cast
?将部分字符串转换为整数?我知道atoi()
存在类似的东西,但我应该真的使用它才能将我的字符串的第一个字符转换为整数吗?
int w; string my_str; getline(cin, my_str); w = static_cast(my_str[0]) - 48;
这是正确的吗?或者我应该以另一种方式做到这一点?
只要您确定my_str[0]
包含数字字符,就可以了.
你应该避免使用魔术数字48
,更好的写作w = my_str[0] - '0';
该数字48
是ASCII码数字表示'0'
.还有其他字符代码系统(如EBCDIC代码),c或c ++语言没有明确的概念,数字表示可以完全不同.
也就是说,使用'0'
对于许多字符代码系统而言都是可移植的,而不仅仅是ASCII代