asc and chr equivalent in C/C++

前端 未结 3 1940
囚心锁ツ
囚心锁ツ 2021-01-13 12:44

Well the title pretty much sums it up. I want to use something like asc(\"0\") in C++, and want to make the program platform independent so don\'t want to use 48! Any help a

相关标签:
3条回答
  • 2021-01-13 13:24

    You will get the ASCII value of a 0 character by writing: '0'.
    Likewise 'char' for every char you need.

    0 讨论(0)
  • 2021-01-13 13:33

    You can simply use single-quotes to make a character constant:

    char c = 'a';
    

    The character type is a numeric type, so there is no real need for asc and chr equivalents.

    Here's a small example that prints out the character values of a string:

    #include <stdio.h>
    
    int main(int argc, char **argv) {
      char str[] ="Hello, World!";
    
      printf("string = \"%s\"\n", str);
    
      printf("chars = ");
      for (int i=0; str[i] != 0; i++) 
        printf("%d ", str[i]);
      printf("\n");
    
      return 0;
    }
    

    The output is:

    string = "Hello, World!"
    chars = 72 101 108 108 111 44 32 87 111 114 108 100 33 
    
    0 讨论(0)
  • 2021-01-13 13:37

    In C and C++, if you use a character enclosed by '' and not "" it means you are dealing with its raw binary value already.

    Now, in C and C++, "0" is a literal two byte null-terminated string: '0' and '\0'. (ascii 48 ascii 0)

    You can achieve what you want by using var[0] on a "" null-terminated string or use one of the conversion routines. (atoi() in C, stringstream lib in C++)

    0 讨论(0)
提交回复
热议问题