首页 新闻 会员 周边 捐助

C语言中,数字字符的加减怎么实现?

0
悬赏园豆:20 [已解决问题] 解决于 2019-12-08 20:39

例如:
输入一串数字字符,翻译规律如下:
0——>9
1——>8
2——>7
3——>6
4——>5
5——>4
6——>3
7——>2
8——>1
9——>0
(本菜鸟看明白了翻译前后两数相加为9,就想用“9-(翻译之前的数)”来表示翻译之后的数,但不知怎么实现,求解!!)

Fate-Joker的主页 Fate-Joker | 初学一级 | 园豆:158
提问于:2019-12-06 21:23
< >
分享
最佳答案
0

include<stdio.h>

include<string.h>

int main()
{
char input_str[100], out_str[100];
int i = 0;
printf("请输入数字字符串:");
scanf("%s", &input_str);
for (; i < strlen(input_str); i++) {
out_str[i] = 9 - (input_str[i] - '0') + '0';
}
printf("%s", out_str);
return 0;
}

收获园豆:20
编程小大白 | 小虾三级 |园豆:530 | 2019-12-07 12:50

请问,out-str[i]=9-(in-str[i]-'0')+'0'是什么原理呢?

Fate-Joker | 园豆:158 (初学一级) | 2019-12-07 21:21

@Fate-Joker: input_str - '0' 表示用这个字符减去0字符对应的ascii码,这样获得的是对应的数字,用9减去之后再加上0字符对应的ascii码,赋值给char类型的变量后会自动转换成ascii码对应的字符

编程小大白 | 园豆:530 (小虾三级) | 2019-12-07 22:21

@Fate-Joker: 你要区分开0字符与0数字

编程小大白 | 园豆:530 (小虾三级) | 2019-12-07 22:22

@Fate-Joker: 总之就是int和char之间的来回转换

编程小大白 | 园豆:530 (小虾三级) | 2019-12-07 22:23

@编程小白-郭旭: 非常感谢!我会记住的!

Fate-Joker | 园豆:158 (初学一级) | 2019-12-08 20:39
其他回答(1)
-3

太晚了明天告诉你

发你的还是过去过去 | 园豆:202 (菜鸟二级) | 2019-12-06 23:33

我等啊等啊等...

支持(2) 反对(0) Fate-Joker | 园豆:158 (初学一级) | 2019-12-07 20:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册