有没有办法从C中的整数中删除最后一个数字?例如,如果用户输入了数字:“123”有没有办法将其更改为“12”?
由于
答案 0 :(得分:8)
将整数除以10。
123/10 == 12。
答案 1 :(得分:7)
我通常只是除以10.整数数学截断。通常会让初学者疯狂,但这正是你想要的。但要注意负数。
答案 2 :(得分:3)
如果要将其截断为整数值,只需使用整数除法。
number = 123;
number /= 10;
/* number is now 12 */
对于字符串,取决于您如何分配字符串,您只需将3设置为\0
字符即可将其打印在字符串中。
答案 3 :(得分:3)
除以10绝对是首选解决方案。
但是,如果要在转换为整数之前从输入字符串中删除最后一位数(例如,如果用户可能输入的数字太大而无法放入int
,如5000111222),您可以执行以下操作,假设用户的输入位于char *
变量buf
中:
buf[strlen(buf)-1] = 0;
这会提前终止字符串一个字符。请注意,如果字符串为空(""
),这将产生未定义的行为,因此请确保字符串先是非空的。
答案 4 :(得分:1)
请记住,数字与十进制表示不同。
那就是说,你可以在这里使用整数除法除以十。
#include <stdio.h>
int main(int argc, char *argv[]) {
int i;
for (i = 10; i < 21; i++)
printf("%d %d\n", i, i/10);
return 0;
}