【问题标题】:Is there a function that returns the ASCII value of a character? (C++)是否有返回字符的 ASCII 值的函数? (C++)
【发布时间】:2010-10-25 03:32:09
【问题描述】:

我需要一个返回字符的 ASCII 值的函数,包括空格、制表符、换行符等...

同理,十六进制、十进制、二进制之间转换的函数是什么?

【问题讨论】:

    标签: c++ binary ascii character hex


    【解决方案1】:
    char c;
    int ascii = (int) c;
    s2.data[j]=(char)count;
    

    char整数,不需要转换函数。

    也许您正在寻找将整数显示为字符串的函数 - 使用十六进制、二进制或十进制表示?

    【讨论】:

      【解决方案2】:

      您不需要函数来获取 ASCII 值——只需通过(隐式)强制转换转换为整数:

      int x = 'A';  // x = 65
      int y = '\t'; // x = 9
      

      要将数字转换为十六进制或十进制,您可以使用printf 系列的任何成员:

      char buffer[32];  // make sure this is big enough!
      sprintf(buffer, "%d", 12345);  // decimal: buffer is assigned "12345"
      sprintf(buffer, "%x", 12345);  // hex: buffer is assigned "3039"
      

      没有内置函数可以转换为二进制;你必须自己动手。

      【讨论】:

        【解决方案3】:

        如果您想在代码中获取字符的 ASCII 值,只需将该字符放在引号中

        char c = 'a';
        

        【讨论】:

          【解决方案4】:

          您可能会将内部表示与输出混淆。查看一个角色的价值:

          char c = 'A';
          cout << c << " has code " << int(c) << endl;
          

          十六进制值类似——所有数字都是十六进制数字,所以这只是一个输出问题:

          int n = 42;
          cout << n << " in hex is " << hex << n << endl;
          

          输出语句中的“十六进制”是一个 C++ 操作符。有十六进制和十进制(dec)的操纵符,但不幸的是二进制没有。

          【讨论】:

            【解决方案5】:

            就十六进制和二进制而言 - 这些只是整数的表示。您可能想要的是类似 printf("%d",n) 和 printf("%x",n) - 第一个打印十进制,第二个打印相同数字的十六进制版本。澄清你想要做什么 -

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-02-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多