Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C如何在整数中检查并指向“0”_C_Search_Position_Int - Fatal编程技术网

C如何在整数中检查并指向“0”

C如何在整数中检查并指向“0”,c,search,position,int,C,Search,Position,Int,假设我们在C程序中有一个整数=1040或整数=105,我们想知道这个数字是否包含0,以及它们在哪个位置。我们怎么能做到呢 例子 1040->位置0和2 1000->位置0、1和2 104->位置1 56->没有零 谢谢 我会把它转换成字符串;在字符串中查找字符非常简单 根据经验,如果你在做某件事的数学,那就是一个数字;否则,它可能或应该被视为字符串 或者,类似于: #include <stdio.h> int main(void) { int input=1040;

假设我们在C程序中有一个整数=1040或整数=105,我们想知道这个数字是否包含0,以及它们在哪个位置。我们怎么能做到呢

例子

1040->位置0和2

1000->位置0、1和2

104->位置1

56->没有零


谢谢

我会把它转换成字符串;在字符串中查找字符非常简单

根据经验,如果你在做某件事的数学,那就是一个数字;否则,它可能或应该被视为字符串

或者,类似于:

#include <stdio.h>

int main(void) {
    int input=1040;
    int digitindex;
    for (digitindex=0; input>0; digitindex++) {
        if (input%10==0) {
            printf("0 in position %i\n",digitindex);
        }
        input/=10;
    }
    return 0;
}
这基本上是报告如果最后一个数字是0,然后删除最后一个数字;重复,直到什么都没有剩下。负数需要稍作修改


你可以在

玩这个,我会除以10,然后检查余数。如果余数为0,则数字的最后一个位置为0。然后重复相同的步骤,直到数字小于10

#include<iostream>   

int main(void)
{
long int k = 6050404;
int iter = 0;
while (k > 10) {
    long int r = k % 10;
    if( r == 0) {
        std::cout << iter << " ";
    }
    k = k / 10;
    iter++;
}
}

这样做的目的不是为了你的思考,而是一个关于特定编程问题的回答和回答的地方。你会找到相反的位置,即1305==位置1。你如何看待这个问题?上面回答了一个例子。对不起,我重新检查了这个问题,是的,你做的没错,没有看到任何转换为字符串!!对此,我给出了两个可能的答案;第一种是将其转换为字符串,其实现细节留给读者;另一种是进行模数%和除法运算,并给出了其实现。