样例答案对了,但一直WA 题目: “扫描识别”你知道是怎么回事吧?
它的意思就是:先用扫描仪把纸上的文字扫描成一个图片,再用识别软件把那个图片中的文字识别出来,最后生成一个文本文件。这对于需要把大量的纸稿录入成电子文档的人来说,当然是非常方便的。 以现有的技术,扫描效果是比较理想的,但识别效果还不十分另人满意,经常会出现错误,尤其是当两个字形状特别接近的时候,而且,这种错误是很难用眼睛看出来的。我们的纸稿上有一个数字串,识别之后得到的字符串保存在输入文件中,这个串可能有识别错误。已知,可能出现的错误有如下几种:
1、 把数字0错误地识别为大写字母O;
2、 把数字1错误地识别为小写字母l;
3、 把数字2错误地识别为大写字母Z;
4、 把数字5错误地识别为大写字母S;
5、 把数字6错误地识别为小写字母b;
6、 把数字8错误地识别为大写字母B;
7、 把数字9错误地识别为小写字母q。
你的改正方案是:如果字符串中出现了上述字母,请替换为原来的数字。最后把改正之后的数字串输出。
输入格式
一个字符串,表示识别后得到的字符串。串的长度不超过100。
输出格式
一个数字串,表示改正后的数字串。
输入样例 1
321lO88BqS
输出样例 1
3211088895
代码:
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
char f[105];
int main(){
fgets(f, sizeof(f), stdin);
for(int i = 0; i < sizeof(f); i++) {
char c = f[i];
switch(c){
case 'O': printf("%c", '0');
break;
case 'l': printf("%c", '1');
break;
case 'Z': printf("%c", '2');
break;
case 'S': printf("%c", '5');
break;
case 'b': printf("%c", '6');
break;
case 'B': printf("%c", '8');
break;
case 'q': printf("%c", '9');
break;
default: printf("%c", c);
break;
}
}
return 0;
}