C++代码错误分配

C++ code error assignment

本文关键字:分配 错误 代码 C++      更新时间:2023-10-16

>我有一个关于作业的问题告诉我

如果某个字符是一个数字,它必须转换为另一个字符,其值等于原始数字 n 除以 4 (n%4( 的余数。例如,如果用户输入"987654",则输出(在取余数并反转数组之后(应为:"012301"。

我编写的代码运行良好,除了这部分我想在我的函数中获取其余部分,但它似乎根本不起作用任何建议?

void function(char x[], int size)
{
        **if (x[i] >= '0' && x[i] <= '9')
        {
            x[i]=x[i] % 4;
        }**
        cout << x[i];
    }
    cout<<endl;
}

}

数组 x 包含字符,但在您突出显示的部分中,转换依赖于查找由该数字字符表示的整数值n x[i]

幸运的是,由于表示'0'字符的 ASCII 值可以被 4 整除,即使你不从x[i]中减去 ' 0' 的值,模运算的结果也不会受到影响。尽管如此,在找到 n 的模 4 后,你最终得到一个 [0, 4] 范围内的整数值。要将其反映回字符串,作为字符,您需要将整数值 '0' 添加到其中。

下面是一个代码示例,演示了我上面提到的内容。

if (x[i] >= '0' && x[i] <= '9')
{
    int n = (x[i] - '0');
    x[i] = (n % 4) + '0';
}