如何检查int var是否包含特定数字
我无法找到解决方案。例如:我需要检查int 457是否在某处包含数字5。
感谢您的帮助;)
答案 0 :(得分:14)
457 % 10 = 7 *
457 / 10 = 45
45 % 10 = 5 *
45 / 10 = 4
4 % 10 = 4 *
4 / 10 = 0 done
得到它?
这是我的回答所暗示的算法的C实现。它会找到任何整数的任何数字。它与Shakti Singh的答案基本上完全相同,只不过它可以用于负整数并且一旦找到数字就停止......
const int NUMBER = 457; // This can be any integer
const int DIGIT_TO_FIND = 5; // This can be any digit
int thisNumber = NUMBER >= 0 ? NUMBER : -NUMBER; // ?: => Conditional Operator
int thisDigit;
while (thisNumber != 0)
{
thisDigit = thisNumber % 10; // Always equal to the last digit of thisNumber
thisNumber = thisNumber / 10; // Always equal to thisNumber with the last digit
// chopped off, or 0 if thisNumber is less than 10
if (thisDigit == DIGIT_TO_FIND)
{
printf("%d contains digit %d", NUMBER, DIGIT_TO_FIND);
break;
}
}
答案 1 :(得分:4)
将其转换为字符串并检查字符串是否包含字符“5”。
答案 2 :(得分:4)
int i=457, n=0;
while (i>0)
{
n=i%10;
i=i/10;
if (n == 5)
{
printf("5 is there in the number %d",i);
}
}