本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。
输入格式:
输入为一个以回车结束的字符串(少于80个字符)。
输出格式:
按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。
输入样例1:
FONTNAME and FILENAME
输出样例1:
FONTAMEIL
输入样例2:
fontname and filrname
输出样例2:
Not Found
解题思路:题目限制了输入少于80个字符,那就两个字符数组,一个接收用户输入,一个用于接收大写字母。定义一个flag用于判断是否有大写字母。
方法一:用c语言写
#include<stdio.h>
#include<string.h>
int main() {
char arr1[80] = {'0'};
char arr2[80] = { '0' };
gets_s(arr1);
int i,j=0,k,m, flag = 0;
for (i = 0; i < strlen(arr1); i++) {
if (arr1[i] >= 65 && arr1[i] <= 90) {
arr2[j++] = arr1[i];
flag=1;
}
}
if (flag == 0)
printf("Not Found");
else
{
for(i=0;i<strlen(arr2)-1;i++)
for (k = i + 1; k < strlen(arr2); k++) {
if (arr2[i] == arr2[k]) {
for (m = k; arr2[m]; m++) {
arr2[m] = arr2[m + 1];
}
i--;//防止有多个重复数字,再来一遍
}
}
printf("%s", arr2);
}
return 0;
}
方法二:python写的,不得不说,python确实简洁,直接一个isupper函数秒了。
str=input()
res=""
for x in str:
if x.isupper() and x not in res:
res=res+x
if len(res)>0:
print(res)
else:
print("Not Found")
测试结果: