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

时间:2015-07-22 06:05:54

标签: c arrays char int

我目前正在开展一个项目,我需要做一些非常具体的事情。我需要使用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");
}

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

PS。我知道使用获取是不安全的,但这就是老师所要求的,所以我必须这样做。

1 个答案:

答案 0 :(得分:2)

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

  1. 从用户那里获取"客人入住多少天?"使用fgets()
  2. 使用strtol()字符串输入转换为int并存储在临时int变量中。
  3. 将该值乘以全局char
  4. 使用snprintf()将结果打印database[room_ID+4]