当前位置:网站首页>PTA 实验7-5 输出大写英文字母(10 分)
PTA 实验7-5 输出大写英文字母(10 分)
2022-08-09 11:09:00 【追梦杰尼龟】
PTA 实验7-5 输出大写英文字母(10分)
题目:
本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。
输入格式:
输入为一个以回车结束的字符串(少于80个字符)。
输出格式:
按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。
输入样例1:
FONTNAME and FILENAME
输出样例1:
FONTAMEIL
输入样例2:
fontname and filrname
输出样例2:
Not Found
思路分析
:
1.定义两个字符数组;
第一个用于存储输入首先输入的字符串,将所有小写的字符全部删去
第二个用于存储筛选过后的字符串,该数组应全部为大写字符
2.去除重复的大写字符
运用到数组0.1标记方法,先将数组全部标记为0,当有重复的出现时,将重复的其中一个标记为1,最后输出标记为0的字符,就可以避免输出重复的字符了
3.考虑到全为小写字符是不存储到第二个字符数组的,所以用到相当于计数器的变量来实现;
代码+注释
:
#include<stdio.h>
#include<string.h>
int main()
{
/*输入*/
char a1[80];//未做处理的数组
char a2[80];//处理后的数组
gets(a1);
/*遍历*/
int k1 = strlen(a1);//计算a1的长度
int i;
int k2 = 0;
for(i=0; i<k1; i++){
if(a1[i]>='A'&&a1[i]<='Z'){
a2[k2] = a1[i];
k2++;//用来计算a2数组的长度
}
}
/*如果全为小写字母,那么a2数组不可能存储 那么K2不可能自增,会等于0;*/
if(k2 == 0){
//如果全为小写的情况
printf("Not Found");
}
/*此时a2数组中全部都是大写字母*/
/*用0,1标记区别重复*/
/*双重循环来检验*/
int m,j;
for(i=0; i<k2; i++){
m = 0;
for(j=0; j<i; j++){
if(a2[i] == a2[j]){
m = 1;
}
}
if(m == 0){
printf("%c",a2[i]);
}
}
return 0;
}
边栏推荐
猜你喜欢
随机推荐
FreeRTOS任务创建源码分析
ThreadLocal及其内存泄露分析
Preparation for gold three silver four: how to successfully get an Ali offer (experience + interview questions + how to prepare)
PTA习题 三角形判断
CAN总线发送数据
使用.NET简单实现一个Redis的高性能克隆版(四、五)
二叉树 前序是根在前(根左右)中序(左根右)
富媒体在客服IM消息通信中的秒发实践
golang源代码阅读,sync系列-Pool
论文分享 | ACL2022 | 基于迁移学习的论元关系提取
golang interface “坑记录“
Julia常见符号意思
Cluster understanding
Quartz分布式实现
Number theory knowledge
CentOS6.5 32bit安装Oracle-11gR2步骤说明
剖析STM32F103时钟系统
Solve 1. tensorflow runs using CPU but not GPU 2. GPU version number in tensorflow environment 3. Correspondence between tensorflow and cuda and cudnn versions 4. Check cuda and cudnn versions
华为VRRP+MSTP联动接口检测实验案例
MATLAB中如何把cftool拟合的函数输出到命令行(解决如何导出拟合后的曲线数据)