-->

signed

QiShunwang

“诚信为本、客户至上”

[PTA]实验7-3-5 输出大写英文字母

2021/6/9 7:08:22   来源:

本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。

输入格式:

输入为一个以回车结束的字符串(少于80个字符)。

输出格式:

按照输入的顺序在一行中输出所出现过的大写英文字母,每个字母只输出一遍。若无大写英文字母则输出“Not Found”。

输入样例1:

FONTNAME and FILENAME

输出样例1:

FONTAMEIL

输入样例2:

fontname and filrname

输出样例2:

Not Found
  • 提交结果:

在这里插入图片描述

  • 源码:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main(void)
{
	char s[80];				// 原始输入字符串
	char bigLetter[80];		// 大写英文字母字符串
	int index = 0;			// 大写英文字母字符数组下标
	
	gets(s);

	// 获得字符串中的大写英文字母,存入新的字符数组
	for (int i = 0; s[i] != '\0'; i++)
	{
		// 如果是大写英文字母
		if (isupper(s[i]))
		{
			bigLetter[index] = s[i];
			index++;
		}
	}
	bigLetter[index] = '\0';

	// 将大写英文字母字符串中不重复的字母输出
	for (int i = 0; bigLetter[i] != '\0'; i++)
	{
		int isExist = 0;	// 大写字母是否重复:0-不重复;1-重复

		// 在bigLetter[i]前查找,若找到相同的,则不输出
		for (int j = 0; j < i; j++)
		{
			if (bigLetter[j] == bigLetter[i])
			{
				// 存在相同大写字母,不输出本个大写字母
				isExist = 1;
				break;
			}
		}

        // 本个字符之前不存在与它重复的字符,输出
		if (isExist == 0)
		{
			printf("%c", bigLetter[i]);
		}
	}

	// index为0,则字符串中不存在大写英文字母
	if (index == 0)
	{
		printf("Not Found");
	}

	return 0;
}