修改规则如下:
- 数字字符0,1,2,3,4,5,6,7,8分别改成1,2,3,4,5,6,7,8,9
- 数字字符9改为0
- 其它字符不变
我们还是来分析一下
首先是字符串的输入,这里使用gets函数进行字符串的输入,不使用scanf函数的原因如下图:
如果输入的字符串中间是有空格的,那么空格后面的内容不会被读取到
其次就是数据类型的转换,字符在计算时需要改成int,计算完成之后需要再改回字符
那么如何进行char和int的数据类型的转换?
之前在扫雷的博客中提到过,字符型数据后面-'0'就是int型,int后面+'0'便成了字符型数据
最后是数字字符的修改的规则
你可以使用条件判断,当arr[i]是0~8之间的数的时候+1,arr[i]为9的时候改成0,但个人觉得麻烦,本人使用规则如下:
if (arr[i]-'0' >= 0 && arr[i] - '0' <= 9)
{
arr[i] = (arr[i]-'0' + 1) % 10+'0';
}
当arr[i]是0~8之间,(arr[i]+1)%10后的结果仍然是arr[i]+1,而当arr[i]为9的时候结果便为0了
思路梳理完毕,代码如下:
#include<stdio.h>
int main()
{
char arr[80] = { 0 };
gets(arr);
int i = 0;
for (i = 0; arr[i] != '\0'; ++i)
{
if (arr[i]-'0' >= 0 && arr[i] - '0' <= 9)
{
arr[i] = (arr[i]-'0' + 1) % 10+'0';
}
}
printf("%s", arr);
return 0;
}
结果如图:
完