代码:
#include <stdio.h> main() { char a[100]="aabbccccdef"; int i,k=0; for (i=1;a[i];i++) { if (a[k]!=a[i]) { k++; a[k]=a[i]; } }
这只限于已经按顺序排好的字符串,对于无序的则处理错误a[k+1]='\0'; puts(a);
对无序的字符进行删除:
#include <stdio.h> main() { char a[100],i=0,j=0,k=0; gets(a); for (i=0;a[i];i++) for (j=i+1;a[j];) if(a[i]==a[j]) { for (k=j;a[k];k++) //如果当前元素和后面的相等,则把数组后面元素往前移动 a[k]=a[k+1]; } else //不想等继续向后检测 j++; puts(a); }