1029 旧键盘 c语言实现

题目链接
思想:在正确字符串中有的而实际输入没有的,即为错误的地方;
所以我们可以利用循环来判断;
相等则跳过,不相等则正确数组该值记录,下移一位进行下次比较;
一开始少考虑了一个情况即确字符串特别长,实际输入已经没有的情况,则这些应全部录入;

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#pragma warning(disable:4996);
#include 
#include
#include
#include
#include
using namespace std;
int main()
{
	char a[85], b[85];
	char c[85];
	scanf("%s", a);
	getchar();
	scanf("%s", b);
	int l1 = strlen(a);
	int l2 = strlen(b);
	int i, j,k;
	i = j = k=0;
	for (;i < l1 && j < l2;)
	{
		if (a[i] == b[j]) { i++;j++; }
		else {
			
			c[k++] = a[i];
			i++;
		}
	}
    while (i < l1)//考虑到一个正确字符串特别长,实际输入已经没有的情况,则这些应全部录入
	{
		c[k++] = a[i];
		i++;
	}
	for (int i = 0;i < k;i++) if (c[i] <= 'z' && c[i] >= 'a') c[i] -= 32;//大写化
	for (int i = 0;i < k;i++)
	{
		int flag = 1;
		for (int j = 0;j < i;j++)
		{
			if (c[j] == c[i]) flag = 0;//找不重复的
		}
		if (flag == 1) cout << c[i];
	}
	return 0;
}

你可能感兴趣的:(PAT乙级)