不可使用set,因为set内部的元素是按照ASCII码顺序排列的。
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cstring>
using namespace std;
int main(void) {
char str1[100], str2[100], worn[100];
int i, j, k, len1, len2, len3 = 0;
bool flag;
scanf("%s %s", str1, str2);
len1 = strlen(str1);
len2 = strlen(str2);
for (i = 0, j = 0; i < len1 && j < len2;) {
if (toupper(str1[i]) == toupper(str2[j])) {
i++;
j++;
}
else {
flag = false;
for (k = 0; k < len3; k++) {
if (worn[k] == toupper(str1[i])) {
flag = true;
break;
}
}
if (!flag) {
worn[len3++] = toupper(str1[i]);
}
i++;
}
}
while (i < len1) {
flag = false;
for (k = 0; k < len3; k++) {
if (worn[k] == toupper(str1[i])) {
flag = true;
break;
}
}
if (!flag) {
worn[len3++] = toupper(str1[i]);
}
i++;
}
k = 0;
while (k < len3) {
printf("%c", worn[k++]);
}
return 0;
}