Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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++ 如何使用字符串数组分解数字的各个数字?_C++_C++14 - Fatal编程技术网

C++ 如何使用字符串数组分解数字的各个数字?

C++ 如何使用字符串数组分解数字的各个数字?,c++,c++14,C++,C++14,我必须写一个代码,它接受一个输入并打印出一个由素数组成的新数字,这些素数存在于原始数字中。 例如输入:453 产出:53 我已经编写了代码: #include <iostream> #include<string> using namespace std; int main() { int number; int digit; int reverse = 0; int reverse1; int digit1; cout

我必须写一个代码,它接受一个输入并打印出一个由素数组成的新数字,这些素数存在于原始数字中。 例如输入:453 产出:53 我已经编写了代码:

#include <iostream>
#include<string>

using namespace std;

int main()
{
    int number;
    int digit;
    int reverse = 0;
    int reverse1;
    int digit1;
    cout<<"input a number"<<endl;
    cin>>number;
    int flag = 0;

    while(number!=0)
    {
        digit = number % 10;
        number = number / 10;
        for(int i = 2; i < digit; i++)
        {
            if(digit % i == 0)
            {
                flag = 1;
            }
        }
        if(flag == 0)
        {
            reverse = reverse * 10 + digit;
        }
    }

    reverse1 = reverse;
    while(reverse1 != 0)
    {
        digit1 = reverse1 % 10;
        reverse1 = reverse1 / 10;
        cout<<digit1;
    }

    cout<<endl;
}
#包括
#包括
使用名称空间std;
int main()
{
整数;
整数位数;
int反向=0;
int反转1;
int-digit1;

cout如果我理解您试图正确执行的操作(有效地从您的输入号码中删除除2、3、5和7以外的数字),那么这应该可以:

#include <algorithm>
#include <iostream>
#include <set>
#include <string>

using namespace std;

int main() {
    const set<int> primes{2, 3, 5, 7};
    string num;
    cin >> num;
    num.erase(remove_if(begin(num), end(num), [&](char c){ return !primes.count(c - '0'); }), end(num));
    cout << num << '\n';
}

#include

FWIW,您需要为每个数字将
标志重置为
0
。否则,一旦设置为
1
,其值不会更改。