我对我的作业有疑问,告诉我
如果某个字符是数字,则必须将其转换为另一个字符,其值等于原始数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;
}
}
答案 0 :(得分:1)
您的数组x包含字符,但在您突出显示的部分中,转换依赖于查找由该数字字符n
表示的整数值x[i]
。
幸运的是,由于表示'0'
字符的ASCII值可被4
整除,即使您没有从0'
中减去“x[i]
的值,模数运算不受影响。尽管如此,在找到n
的模4之后,最终会得到[0,4]范围内的整数值。要将其反映回字符串,作为字符,您需要将'0'
的整数值添加回来。
下面是一个代码示例,演示了我上面提到的内容。
if (x[i] >= '0' && x[i] <= '9')
{
int n = (x[i] - '0');
x[i] = (n % 4) + '0';
}