将存储在数组中的 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 是不安全的,但那是老师要求的,所以我必须这样做。
你的问题陈述不是很清楚,但截至目前,实现你想要的一个通用方法是
- 使用
fgets()
. 从用户那里获取 "How many days will the guest stay?" 的输入
- 使用
strtol()
将 字符串 输入转换为 int
并存储在临时 int
变量中。
- 将该值乘以您的全局
char
。
- 使用
snprintf()
. 将结果打印到database[room_ID+4]
我目前正在做一个项目,我需要做一些非常具体的事情。我需要使用 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 是不安全的,但那是老师要求的,所以我必须这样做。
你的问题陈述不是很清楚,但截至目前,实现你想要的一个通用方法是
- 使用
fgets()
. 从用户那里获取 "How many days will the guest stay?" 的输入
- 使用
strtol()
将 字符串 输入转换为int
并存储在临时int
变量中。 - 将该值乘以您的全局
char
。 - 使用
snprintf()
. 将结果打印到
database[room_ID+4]