如何检查int var是否包含特定数字

时间:2011-02-12 10:04:37

标签: c numbers char int

如何检查int var是否包含特定数字

我无法找到解决方案。例如:我需要检查int 457是否在某处包含数字5。

感谢您的帮助;)

3 个答案:

答案 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);
 }
}