C++ 如何删除某个特定数字之前的所有数字

C++ 如何删除某个特定数字之前的所有数字,c++,C++,在查找特定数字之前,如何删除数字中的所有数字。 假设我想得到数字1(包括1)之后的所有数字 示例:3543125-我想得到数字125 我开始这样做: int n, result; cout << "Please enter number: "; cin >> n; while (n>0) { n = n % 10; } intn,结果; cout>n; 而(n>0) { n=n%10; } 获取最后一个数字

在查找特定数字之前,如何删除数字中的所有数字。 假设我想得到数字1(包括1)之后的所有数字

示例:3543125-我想得到数字125

我开始这样做:

int n, result;
    cout << "Please enter number: ";
    cin >> n;
    while (n>0)
    {
        n = n % 10;
    }
intn,结果;
cout>n;
而(n>0)
{
n=n%10;
}
获取最后一个数字,但我不知道如何将其保存在变量中,然后将第二个数字添加到变量中

有人能解释一下,我怎么解决这个问题吗?

试试这个。(太简单了:-)

#包括
int n,a,结果=0;
cout>n;
cout>a;
int b=a;
而(b>0){
结果+=n%10*功率(10,a-b-);
n=n%10;
}

std::cout这是一个算法,我没有测试它,但它{仅适用于循环和if}

int num = 3543125;
int temp = 0;
do             //get the result in reverse number
{
    temp += num % 10;
    temp *= 10;
    num /= 10;
    if (num % 10 == 1)
        temp += 1;

} while (num % 10 != 1);    
int result = 0;
while (temp > 0)   //reverse the temp number to result
{
    result = result * 10 + (temp % 10);
    temp = temp / 10;
}
cout << result;  // = 125
int num=3543125;
内部温度=0;
是否//以相反的数字获取结果
{
温度+=数值%10;
温度*=10;
num/=10;
如果(数值%10==1)
温度+=1;
}而(数值%10!=1);
int结果=0;
while(temp>0)//将temp编号反转为result
{
结果=结果*10+(温度%10);
温度=温度/10;
}

下面的一切,包括
1
都是
n%=1000。结果是
n
的值为
125
。不需要循环。那么,你到底想解决什么问题呢?@WhozCraig这不能正常工作,它必须用循环完成,如果假设你输入314,你将得到相同的输出,但不是14。你确定数字中有1吗?或者您需要检查它?我只需要知道数字而不使用string,然后使用std::to_string将数字转换为字符串。这样可以正确地切断最后n个数字(尽管
n%pow(10,a)
在一行中也这样做),但是它不能找到一个数字并确定要剪切多少个数字。不要对整数值使用
pow
pow
是一个浮点函数。@PaulMcKenzie:捕捉得好。还需要编写一个
ipow
函数。
int num = 3543125;
int temp = 0;
do             //get the result in reverse number
{
    temp += num % 10;
    temp *= 10;
    num /= 10;
    if (num % 10 == 1)
        temp += 1;

} while (num % 10 != 1);    
int result = 0;
while (temp > 0)   //reverse the temp number to result
{
    result = result * 10 + (temp % 10);
    temp = temp / 10;
}
cout << result;  // = 125