C语言对指针常量中的字符进行冒泡排序,字符串中内容地址不能直接swap交换?

char *str = "ajbdfgrukcde2145" (这里定义*str,不是定义str[])
怎样讲这个字符串中的字符按 从大到小进行排序??
我用
swap(&str[0],&str[1]) 这样是不能直接交换的。 如果是交换两个变量地址可以成功,现在交换一个变量里面单个字符的地址不能成功?

输入6个字符,例如:
enter char 1: 8
enter char 2: d
enter char 3: h
enter char 4: K
enter char 5: k
enter char 6: &

按ASCII码值从大到小输出
k h d K 8 &

程序如下:

#include <stdio.h>
void main()
{
unsigned char a[6];
int i,j,tmp;
for(i=0;i<6;i++)
{
printf("enter char %d: ", i+1);
fscanf(stdin,"%c",&a[i]); fflush(stdin);
};

for (i=0;i<5;i++)
for (j=i+1;j<6;j++)
if ( a[j]>a[i] ) {
tmp = a[j]; a[j]=a[i]; a[i]=tmp;
};

for (i=0;i<6;i++) printf("%c ",a[i]);

getch();
}
温馨提示:答案为网友推荐,仅供参考
相似回答