PTA(Basic Level) 1029:旧键盘(C语言实现)
分析:flag标记相应字符出现的次数(对应字符的ASCII码为数组下标)。用没有坏掉的键打出的字符在两个串中出现次数一样,如果是坏掉的键,那么在第二个字符串中出现的次数为0。题目要求相同字符值打印一次,即相应字符次数为-1时才打印,不能用0,1标记flag,这样相同字符会打印多次。
学习:tolower()、toupper()函数,如果字符为大写字符则转换为小写字符,如果是其他字符则不做任何处理。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
int flag[255]={0},i,m,n;
char c1[81]={0},c2[81]={0};
gets(c1);
gets(c2);
m=strlen(c1);
n=strlen(c2);
for(i=0; i<n; i++)
flag[toupper(c2[i])]++;
for(i=0; i<m; i++)
{
flag[toupper(c1[i])]--;
if(flag[toupper(c1[i])] == -1)
putchar(toupper(c1[i]));
}
return 0;
}