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