彗星爱酿酒 2022-11-27 13:34 采纳率: 59.3%
浏览 21
已结题

输出大写英文字母?!

本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。
输入格式:
输入为一个以回车结束的字符串(少于80个字符)。
输出格式:
按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。
输入样例1:
FONTNAME and FILENAME
输出样例1:
FONTAMEIL
输入样例2:
fontname and filrname
我的代码

img


有人能帮帮忙吗,一直没改对,˃ʍ˂ 大写字母还是会重复出现,So how?

  • 写回答

1条回答 默认 最新

  • 谢玄. 2022-11-27 13:53
    关注
    #include <stdio.h>
    
    int main() {
        int i, j, flag = 0;
        char ch[81] = {0};
        char a[81] = {0};
        gets(ch);
    
        //printf("你输入的是 -> %s\n", ch);
    
        for ( i = 0 ; ch[i] != '\0' ; i++ ) {
            //printf("检查 Index 为 %d 的字符 %c \n", i, ch[i]);
            if ( ch[i] >= 'A' && ch[i] <= 'Z' ) {
                //printf("欲加入 Index 为 %d 的字符 %c \n", i, ch[i]);
                flag = 0;
                for ( j = 0 ; a[j] != '\0' ; j++ ) {
                    if ( a[j] == ch[i] ) {
                        flag = 1 ;
                    }
                }
                if ( flag == 0 ) {
                    //printf("符合 加入 %c \n", a[i]);
                    a[j] = ch[i];
                    a[j + 1] = '\0';
                }
            } else {
                //printf( " %c:%d 不在 %c:%d - %c:%d 范围内", ch[i], ch[i], 'A', 'A', 'Z', 'Z');
            }
        }
    
        //printf("现在 a -> %s\n", a);
    
        if ( a[0] == '\0' ) {
            printf("NOT FOUND");
        } else {
            printf("%s", a);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月27日

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化