#include<stdio.h>
int main(void)
{
char str[80],y[26];
int i,j,ny=0;
printf("Enter a string:");
i=0;
while((str[i]=getchar())!='\n')
i++;
str[i]='\0';
for(i=0;str[i]!='\0';i++)
if(str[i]>='A'&&str[i]<='Z')
{
for(j=0;j<ny;j++)
if (y[i]==str[i])
break;
if(i>=ny){
y[ny]=str[i];
ny++;}
}
printf("%c",str[i]);
else
printf("Not Found");
return 0;
}
求指导!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
虽然连接和编译都没错误!但是执行不出来啊!!!!!
追答您的程序并没有错误,刚刚是我看错了,很抱歉!我刚试了下输入了重复的大写字母,运行会把大写字母重复输出!
例:FOR and FOR
仅输出FOR
你真的运行过了吗?
啊啊啊啊啊啊啊啊啊啊啊啊 啊!好吧,灰常感谢,抱歉抱歉了!!!!!!!!!!!!!!!!!!!!!!
连接也不行的!其他方法也阔以的!
如果有重复的大写字母,只输出一次!
追答#include
int main(void)
{
char str[80],ch[27]={0};/*定义一个大写字符链,用来存出现过的大写字母,因为最多只有26个字符,所以定义成char ch[27],符值{0},会让每一个的值都为0*/
int i,j,k;
gets(str);
for(i=j=k=0;str[i];i++)
{
if(str[i]>='A'&&str[i]<='Z')/*判断是不是大写字母*/
{
for(j=0;ch[j];j++)/*对大写字符链循环比较*/
if(ch[j]==str[i])
break;/*如果存在这个字符就意外退出循环*/
if(j==k)/*如果是意外退出,j达不到尾部就退出的比较,此时j<k,如果链中不存在这个字符,j=k*/
ch[k++]=str[i];/*让大写字符链长度加一,并把新出现的字符加进去*/
}
}
puts(ch);
return 0;
}