输入:
9876673
输出
37689
代码:
int fun(int num)
{
int temp;
int i = 0, j = 0, k = 0;
int len , ret;
char buf[10];
while(num){
temp = num %10;
buf[i] = temp + 48;
num = num/10;
i++;
}
buf[i] = '\0'; //把数字反过来转换成字符串。
printf("%s\n", buf); //打印出来3766789
len = strlen(buf); //求出字符串的长度
for(i = 0; i < len; i++){
for(j = i + 1; j < len; j++){
if(buf[j] == buf[i]){
for(k = j; k <= len; k++){
buf[k] = buf[k + 1];
}
len --;
}
}
} //去掉重复的字符
printf("%s\n", buf); //打印出来37689
ret = atoi(buf); //将字符串转成数字
return ret ;
}
其实字符串去重还有个比较好的系统函数可以使用,strchr()函数
int fun(int num)
{
int temp;
int i = 0, j = 0;
int len , ret;
char buf[10], retBuf[10];
while(num){
temp = num %10;
buf[i] = temp + 48;
num = num/10;
i++;
}
buf[i] = '\0'; //把数字反过来转换成字符串。
printf("%s\n", buf); //打印出来3766789
len = strlen(buf); //求出字符串的长度
for(i = 0, j = 0; i < len; i++){
if(strchr(retBuf, buf[i]) == 0){
retBuf[j] = buf[i];
j++;
}
}
retBuf[j] = '\0'; //去掉重复的字符
printf("%s\n", retBuf); //打印出来37689
ret = atoi(retBuf); //将字符串转成数字
return 0;
}