本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出 “Not Found”。
输入格式:
输入为一个以回车结束的字符串(少于 80 个字符)。
输出格式:
按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出 “Not Found”。
输入样例1:
FONTNAME and FILENAME
输出样例1:
FONTAMEIL
输入样例2:
fontname and filrname
输出样例2:
Not Found
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/13/exam/problems/526
提交:
题解:
#include<stdio.h>
#include<ctype.h>
int main(void) {
char s[80];
gets(s);
char upper[80];
int index = 0;
// 获得字符串中的大写英文字母,存入新的字符数组
for (int i = 0; s[i] != '\0'; i++) {
if (isupper(s[i])) {
upper[index++] = s[i];
}
}
upper[index] = '\0';
// 将大写英文字母字符串中不重复的字母输出
for (int i = 0; upper[i] != '\0'; i++) {
int hasPrint = 0;
// 往 upper[i] 前查找,若找到相同的,则当前大写字母不输出
for (int j = 0; j < i; j++) {
if (upper[j] == upper[i]) {
hasPrint = 1;
break;
}
}
// 本个字符之前不存在与它重复的字符
if (hasPrint == 0) {
printf("%c", upper[i]);
}
}
// index 为 0,则字符串中不存在大写英文字母
if (index == 0) {
printf("Not Found");
}
return 0;
}