题目
答案
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
gets(str);
int n=strlen(str),i,flag=0;
int j,k=0;
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
if(str[j]==str[i]) break;
if(j==i) str[k++]=str[i];
}
for(i=0;i<k;i++)
if(str[i]>='A'&&str[i]<='Z')
{
printf("%c",str[i]);flag=1;
}
if(flag==0) printf("Not Found");
}
总结
- 这道题在判断是否为大写字母前要先去重,去重的方法是通过增设k变量定位需要赋值的位置。具体代码如下:
int n=strlen(str),i,flag=0;
int j,k=0;
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
if(str[j]==str[i]) break;
if(j==i) str[k++]=str[i];
}
2。上面的代码还要注意,if(j==i)
不要错写为if(j==n)
,否则会导致全部出错(可能只有我错写过,呜呜呜)