程序:
1 #include<stdio.h> 2 #include<string.h> 3 #define N 85 4 5 int main() { 6 int t,i,j,m=0,flag; 7 char original[N],target[N]; 8 gets(original); 9 for(i=0; i<strlen(original); i++) { 10 flag = 0; 11 t = original[i]; 12 //判断字符是否在目标数组中 13 for(j=0; j<i; j++) { 14 if(original[j] == t) { 15 flag = 1; 16 break; 17 } 18 } 19 if(flag==0) { 20 target[m] = t; 21 m++; 22 } 23 } 24 for(i=1;i<m;i++){ 25 t = target[i]; 26 j = i-1; 27 while(j>=0 && t<target[j]){ 28 target[j+1] = target[j]; 29 j--; 30 } 31 target[j+1]=t; 32 } 33 for(i=0; i<m; i++) { 34 printf("%c",target[i]); 35 } 36 }
分析:
1、注意字符串长度,original用了gets()接收,可以通过strlen()得到长度,但target不行,要单独定义变量记录长度
2、另一种思路是先排序再输出不重复的字符