将存储在数组中的 char 类型转换为 int 变量

Convert a char type stored in an array to an int variable

我目前正在做一个项目,我需要做一些非常具体的事情。我需要使用 char 数组将值存储在 database 中,但我还需要将乘法的值存储在它的最后一个槽中,但我不知道如何执行此操作。强制转换 char 变量并将其相乘似乎将垃圾存储在 int 上,因为我得到的值超出了它应该的范围。我尝试的另一个建议是使用 memset() 手动设置值,但我不太清楚该怎么做。

这是我的代码

int form_fill(int room_ID, char database[rooms * floors * req_data][20]) {
    printf ("Enter the first name\n");
    fflush(stdin);
    gets (database[room_ID]);
    printf ("Enter the second name\n");
    gets (database[room_ID + 1]);
    printf ("Enter the third name\n");
    gets (database[room_ID + 2]);
    printf ("How many days will the guest stay?\n");
}

理想情况下,用户输入的天数将作为 char 存储在 database[room_ID + 3] 中,并乘以之前声明为全局的另一个变量,并将结果作为 char 存储在database[room_ID + 4]。 有人对此有任何解决方案吗?

ps。我知道使用 gets 是不安全的,但那是老师要求的,所以我必须这样做。

你的问题陈述不是很清楚,但截至目前,实现你想要的一个通用方法是

  1. 使用 fgets().
  2. 从用户那里获取 "How many days will the guest stay?" 的输入
  3. 使用 strtol() 字符串 输入转换为 int 并存储在临时 int 变量中。
  4. 将该值乘以您的全局 char
  5. 使用snprintf().
  6. 将结果打印database[room_ID+4]