代码之家  ›  专栏  ›  技术社区  ›  MOmo

C++中字符串的最后一个字符使用n后退()和铸造

  •  -2
  • MOmo  · 技术社区  · 2 年前

    我的输入是12。为什么产量是50?

    #include <iostream>
    #include <string.h>
    using namespace std;
    
    int main() {
       string n;
       cin>>n;
       cout << (int)n.back();
    }
    
    1 回复  |  直到 2 年前
        1
  •  0
  •   eerorika    2 年前

    我的输入是12。为什么产量是50?

    因为在系统上使用的字符编码中,编码代码单元“2”的值恰好是50。


    如果希望打印代码单元表示的符号,则不能强制转换为 int 键入,然后插入字符类型:

    std::cout << n.back();
    

    如果你想绘制地图 character 表示“0”…'9'到相应的整数值,可以使用 character - '0' 。为什么这样做:不管用什么值来表示数字“0”,从它自身减去它自己的值将产生值0,因为z-z==0。其他数字之所以有效,是因为所有数字都由以“0”开头的连续值表示。因此,“1”将由“0”+1和z+1-z==1表示。