实验7-3-5 输出大写英文字母(15 分) 本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。 输入格式: 输入为一个以回车结束的字符串(少于80个字符)。 输出格式: 按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。 输入样例1: FONTNAME and FILENAME 输出样例1: FONTAMEIL 输入样例2: fontname and filrname 输出样例2: Not Found #include<stdio.h> #include<string.h> #define N 85 //思路一:存储输入的字符串;找到所有大写字母;剔除所有相等的元素。此程序使用:思路一 //思路二:定义两个数组a[] b[] 依次用a[]中的数组元素和b[]中的数组元素比较,如果是a[]是大写字母且 // 与b[]中的字母相等则不输出,否则输出a[]中的数组元素。 int main(void) { int i, j, temp, flag, len1=0, len2=0, cnt=0; char ch; char str1[N]; //存储输入的字符串 char str2[N]; //存储处理后的字符串 ch = getchar(); //输入字符串 for (i = 0; ch != '\n'; i++) { str1[i] = ch; len1++; //记录输入字符串的长度 ch = getchar(); } for (i = 0; i < len1; i++) //初步处理字符串,得到含有大写字母的字符数组str2 { if (str1[i] >= 'A' && str1[i] <= 'Z') { str2[len2] = str1[i]; //经典:存储所有大写字母。设置计数器,只有发现大写字母时len2才进行加1 处理 len2++; //记录大写字母的长度 } } for (i = 0; i < len2; i++) //双重循环,检测str2 中相等的元素,进行剔除 { flag = 0; //每次开始循环都更新flag for (j = 0; j < i; j++) { if (str2[i] == str2[j]) { flag = 1; } } if (flag == 0) { printf("%c",str2[i]); cnt++; } } if (cnt == 0) { printf("Not Found"); } return 0; }
实验7-3-5 输出大写英文字母(15 分)
猜你喜欢
转载自blog.csdn.net/aa11224488/article/details/80207661
今日推荐
周排行