去除字符串中重复字符(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;
}