查找字符串中ASCII编码最大的并删除

查找字符串中ASCII编码最大的并删除

动态创建不大于50字节的一维数组(大小由用户输入,范围为2 <= n <=50),并输入最大可能的字符串。编程实现删除字符串中ASCII码最大的字符,并输出删除后的字符串。请仔细看输入输出示例,示例中的“[空格]”表示在那个位置上输入“空格”。

输入格式:

用户输入一个整数,代表字符数组的容量。可以接收的有效字符数比这个数少1。例如用户输入50,表示数组容量为50,但只能存放49个有效字符。 输入整数后按回车键,在下一行输入一个字符串。字符串中可能含有空格,输入完毕按回车键。

输出格式:

一个字符串,去掉了ASCII编码最大的字符。

输入样例:

11
abcdadbbcc

输出样例:

abcabbcc

输入样例:

10
a[空格]b[空格]c[空格]d[空格][空格]

输出样例:

a[空格]b[空格]c[空格][空格][空格]

输入样例:

5
aaaa
输出样例:
字符串中,所有字符都相同,一个字符也不删除。
aaaa

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	int n,i,count = 0;
	char *p=NULL,ch;
	char h;
	scanf("%d",&n);
	getchar();
	p = (char *)calloc(n,sizeof(char));
	gets(p);
	h = p[0];
	for(i = 1;p[i]!='\0';i++)
	{
		if(h<p[i]) 
		{
			h = p[i];
		}
		if(h==p[i])
		{
			count ++;
		}
	}
	if(count == n-2)
	{
		for(i=0;p[i]!='\0';i++)
		{
			printf("%c",p[i]);
		}
	}
	for(i=0;p[i]!='\0';i++)
	{
		if(h!=p[i])
		printf("%c",p[i]);
		
	}

 }

版权声明:本文为Mr_changxin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。