按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。
例FONTNAME and FILENAME
输出 FONTAMEIL
#include<stdio.h>
#include<string.h>
int main( )
{int a,b,c,d,e,h,j,n,i,t=0;
char aa[10000],bb[10000];
gets(aa);
for(i=0;i<strlen(aa);i++)
{
if(aa[i]<=90&&aa[i]>=65)
{ bb[i]=aa[i];
for(n=0,j=0;n<i-1;n++)
{if(aa[i]==bb[n]);
j++;
}
if(j==0)
printf("%c",aa[i]);
t++;
}
}
if(t==0)
printf("Not Found");
}
不知道为什么只能输出不全的字符
if(aa[i]==bb[n]);
把分号删掉
#include<stdio.h>
#include<string.h>
int main()
{
int j, i = 0;
char aa[10000], bb[10000];
// 将数组初始化为0
memset(aa, 0, 10000);
memset(bb, 0, 10000);
//gets(aa);
// vs2022中使用gets_s读取字符串
gets_s(aa,10000);
// 标记找到的大写字母的索引
int indexBB = 0;
for (i = 0; i < strlen(aa); i++)
{
if (aa[i] <= 90 && aa[i] >= 65)
{
// 是否是已经找到的大写字母
bool exist = false;
for (j = 0;j< indexBB && j <strlen(bb);j++) {
if (bb[j] == aa[i]) {
exist = true;
break;
}
}
// 没有保存过,则将其保存到bb数组中,并且将索引加1
if (!exist) {
bb[indexBB] = aa[i];
indexBB++ ;
}
}
}
// 输出结果
if (strlen(bb) > 0) {
for (i = 0; i < strlen(bb); i++) {
printf("%c", bb[i]);
}
}
else
{
printf("Not Found");
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!