仅供参考!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SWAP(x,y) char tmp;tmp=x;x=y;y=tmp
// 字符串递增排序
char *sort_asc(char *s)
{
if (!s)
return NULL;
char *p = s;
int i = 0, j;
size_t len = strlen(s);
for (; i < len - 1; i++)
{
for (j = i + 1; j < len; j++)
{
if (*(p + i) > *(p + j))
{
SWAP(*(p + i), *(p + j));
}
}
}
*(p + j) = '\0';
return p;
}
// 字符串递减排序
char *sort_inde(char *s)
{
if (!s)
return NULL;
char *p = s;
int i = 0, j;
size_t len = strlen(s);
for (; i < len - 1; i++)
{
for (j = i + 1 ; j < len; j++)
{
if (*(p + i) < *(p + j))
{
SWAP(*(p + i), *(p + j));
}
}
}
*(p + j) = '\0';
return p;
}
int main()
{
char s1[1000], s2[1000];
//
long res;
puts("输入字符串s1:");
scanf("%999s", s1);
puts("输入字符串s2:");
scanf("%999s", s2);
res = atol(sort_inde(s1)) - atol(sort_asc(s2));
printf("%s-%s=%ld\n", s1, s2, res);
return 0;
}