[PTA]实验7-3-10 删除重复字符

Posted Spring-_-Bear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PTA]实验7-3-10 删除重复字符相关的知识,希望对你有一定的参考价值。

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。

输入格式:

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

输出格式:

输出去重排序后的结果字符串。

输入样例:

ad2f3adjfeainzzzv

输出样例:

23adefijnvz
  • 提交结果:

在这里插入图片描述

  • 源码:
#include<stdio.h>
#include<string.h>
int main(void)
{
	char s[80];
	int sLen;	// 字符串s的长度

	gets(s);

	sLen = strlen(s);

	// 删除字符串中重复的字符
	for (int i = 0; i < sLen; i++)
	{
		// 从剩下的sLen-i个字符中找出重复的字符并删除
		for (int j = i + 1; j < sLen; j++)
		{
			if (s[j] == s[i])
			{
				for (int k = j; k < sLen; k++)
				{
					// 后续字符串前移,实现删除字符
					s[k] = s[k + 1];
				}

				// 长度减1
				sLen--;
				s[sLen] = '\\0';
				// 再次从i处开始判断,解决连续重复字符情况
				i--;
			}
		}
	}

	// 选择排序法,按ASCII码值从小到大排序
	for (int i = 0; i < sLen; i++)
	{
		for (int j = i + 1; j < sLen; j++)
		{
			if (s[j] < s[i])
			{
				char temp = s[j];
				s[j] = s[i];
				s[i] = temp;
			}
		}
	}

	puts(s);

	return 0;
}

以上是关于[PTA]实验7-3-10 删除重复字符的主要内容,如果未能解决你的问题,请参考以下文章

PTA——删除重复字符

一·PTA实验作业

2018年3月底的PTA

PTA第二次作业

第二次PTA作业

第02次作业-线性表