去字符串中的重复字符与空格

 

/*该答案为加上裁判程序后的总程序,方便大家复制后进行验证学习*/
#include<stdio.h>
#include"string.h"
void dele(char arr[]);
int main(void)
{
    char strA[81];
    gets(strA);
    dele(strA);
    puts(strA);
    return 0;
}
/*请在这里填写答案*/


void dele(char arr[]){
	int i=0,j=0;
	for(i=0;i<strlen(arr);i++){
		if(arr[i]!=' '&&j<strlen(arr)){
			arr[j]=arr[i];
			j++;
		}
	}
	arr[j]='\0';
	/*去除数组里边的空格,得到不含空格的字符数组*/ 
	int m,n,chang,k,x;
	chang=strlen(arr);
	x=strlen(arr);
	for(m=0;m<chang-1;m++){
		for(n=m+1;n<chang;n++){
			if(arr[m]==arr[n]){
				for(k=m;k<chang;k++){
					arr[k]=arr[k+1];
				}
				chang--;
				n=m;
			}
		}
	}
	/*通过将后边的字符向前填补,将重复的字符去除(注意此时最后一位字符是重复的)*/ 
	int y,a=0;
	y=strlen(arr);
	for(m=0;m<y;m++){
		if(arr[m]==arr[y-1]){
			a++;
		}
	}
	arr[y-a+1]='\0';
	/*去除因为向前填补而导致重复的最后一个字符*/ 
	chang=strlen(arr);
	char t;
	for(m=1;m<chang;m++){
		for(n=0;n<chang-m;n++){
			if(arr[n]>arr[n+1]){
				t=arr[n];
				arr[n]=arr[n+1];
				arr[n+1]=t;
			}
		}
	}
	/*将去除了空格和重复的字符串重新排序*/ 
}

这道题比较复杂,我实力有限,分步骤求解。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值