[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 删除重复字符的主要内容,如果未能解决你的问题,请参考以下文章