去除字符串中重复字符(C语言)

问题:

给定一个字符串,去除字符串中的重复字符。

演示:

输入:abcdabcd

输出:abcd

代码如下:

//串内无重复字符
#include <stdio.h> 
#include <string.h>
#define max 100
main() {
	char a[max];
	printf("请输入一个字符串:");
	scanf("%s",a) ;
	int length=strlen(a);	 //计算字符串长度 
	int i,j;
	for(i=0;i<length;i++){
		for(j=i+1;j<length;j++){	//利用for循环判断第i个字符后面有没有和第i个字符相同的 
			if(a[i]==a[j]){			//如果有相等的字符 
				for(int mark=j;mark<length;mark++){		//需要定义一个变量,让后面的每个字符都向前移动一位 
				a[mark]=a[mark+1];		//将下一个字符赋值给当前字符 (相当于删除字符操作) 
				}
				length--;	//总长度减1 
				j--;	//由于当前字符已删除,需要再次判断当前位置的字符是否和第i个字符相等 
			}
		}
	}
	printf("新字符串为:%s\n",a);
	return 0;
}