c - 将 char 的 int 值保存到 int 变量中

标签 c

网上有数百个关于此主题的问题,但不是我要寻找的问题。我正在寻找一种将字符转换为其 ascii 值的方法。

我的意思不是显示 ascii 值。我的意思是我可以使用的变量中的实际值。仅仅改变占位符是行不通的。仅显示值。我需要实际的工作值(value)。更具体地说,我想输入一个字符并将其 ascii 值保存到 int 变量中。

例如,输入“A”,然后将变量 someVariable 初始化为值 65。然后我想将常量值 20 添加到值 65(或任何情况)对于该字符),得到 85,然后使用该结果数字作为数组的引用索引。

所以你看,我实际上需要将值转换为 int,而不是显示为 int 的 char。

最佳答案

您可以轻松地将字符设置为 ascii 值并将其分配给 int,如下例所示。您还可以添加该值并将其转换为不同的 ascii 字符。

#include <stdio.h>                                                             
int main(void)                                                                 
{                                                                              
    char c ='A';                                                               
    int ascii = (int)c;//Convert to ascii value                                                        
    printf("%d\n",ascii);                                                      

    ascii += 20; //value is now 85                                             

    printf("%d\n",ascii);                                                      

    char d = ascii - '0'; //convert back to new character.                     

    printf("%c\n",d);                                                          
}       

output:
65
85
%

关于c - 将 char 的 int 值保存到 int 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42217841/

相关文章:

c - 为什么 Win32-API 有这么多自定义类型?

写入 char* 数组的 char 会发生某种变化

c++ - 在 Sublime Text 3 编译器选项中启用 -pthread

c - 在循环中使用int n = strlen(…)时出现运行时错误

c - 在 OpenMP while 循环中手动同步

c - 与 STM32f1xx 的 USART 通信

c - 是否有像 gccxml 这样的用于包装器生成的 C header 解析器工具?

c - 有没有一种好方法可以改变用 fork() 创建的子进程的执行顺序?

c - 在project.exe : 0xC0000005: Access violation writing location 0x007110E8 中的0x5409B211 (ucrtbased.dll)处抛出异常

在 C 中检查链表是否为空