c - 如何将字符转换为数字

标签 c

我有一个家庭作业问题。它要求我将一个单词转换为大写,并且必须将几个字符转换为十进制,例如: “你好,我的名字是 FeLix”——>“H3LL0 MY N4M3 15 F3L1X”。因此,必须转换这些字符:

I = 1
S = 5
E = 3
O = 0 
A = 4
etc.

如何转换?我已经尝试将其转换为大写锁定,但无法将其转换为十进制。

我已经尝试过将单词转换为大写,但不知道如何将字符转换为数字。

int main()
    {
        char sentence[200];
        int sentencelength = strlen(sentence);

    // Ambil data user
    scanf("%s",&sentence); getchar();

    // Cek satu persatu pake for
    for (int i= 1; i <= sentencelength; i++) {
        if(sentence[i] >= 'a' && sentence[i] <= 'z') {
            char uppercase = sentence[i] + 'A' - 'a';
            printf("%c",uppercase);
        }
    }

  getchar();
  return 0;
}

没有报错,就是不知道怎么转换。

最佳答案

您可以如下使用switch

switch(uppercase ) {
   case 'I':
      uppercase = '1';
   break;

   case 'S':
      uppercase = '5';
   break;

   case 'E':
      uppercase = '3';
   break;

   …

  }

关于c - 如何将字符转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58503593/

相关文章:

c# - StringBuilder 的 PInvoke 访问冲突

c - 为什么 C 编译器在外部名称前加上下划线?

c - 使用 putchar() 打印之前的行数

c - 初学者的 hello world C 程序?

c - C中的数组 "implemented"如何?

c - 返回数组中的值并打印它

c - fscanf 的不同输入类型

c - 将包含单词和数字的缓冲区过滤为仅包含单词的缓冲区和仅包含数字的缓冲区

将数组转换为结构体

c - 通过函数添加时,新节点未正确添加到链表末尾