标签:bre false str 个数 print 字符串 解决 英文 fgets
这道题主要有两个问题需要解决:
- 如何在不区分大小写的情况下判断第一个字符串中有哪些字符串没有在第二个中出现
- 如何确保同一个字符(不区分大小写)只输出一次,且英文均用大小写输出
解决步骤:
注意事项:
#include <cstdio>
#include <cstring>
int main() {
char str1[100], str2[100];
bool hashTable[128] = {false};
fgets(str1, 100, stdin);
fgets(str2, 100, stdin);
int len1 = strlen(str1);
int len2 = strlen(str2);
for (int i = 0; i < len1; i++) {
int j;
char c1, c2;
for (j = 0; j < len2; j++) {
c1 = str1[i];
c2 = str2[j];
if (c1 >= ‘a‘ && c1 <= ‘z‘) c1 -= 32;
if (c2 >= ‘a‘ && c2 <= ‘z‘) c2 -= 32;
if (c1 == c2) break;
}
if (j == len2 && hashTable[c1] == false) {
printf("%c", c1); //在第二个字符串中未出现c1,且c1未被输出过
hashTable[c1] = true;
}
}
return 0;
}
标签:bre false str 个数 print 字符串 解决 英文 fgets
原文地址:https://www.cnblogs.com/Kirarrr/p/10332228.html