本帖最后由 jhq999 于 2022-2-12 20:04 编辑
字符串常量不允许修改void compare(char *c[],int n);
#include <stdio.h>
#include <string.h>
int main()
{
int q = 0;
char *c[] = {"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};/////////////////////////这里面都是字符串常量
printf("这是按照要求排序后的字符串!\n\n");
printf("%s\n\n",c[0]);//如果要输出一个字符串,使用%s,那么后面只能是地址c[0]
printf("%c\n",*c[0]);//如果需要输出字符,那么需要加个星号,指向它输出!
for(q = 0;q<5;q++)
{
compare(c+q,q);
printf("%s",*(c+q));
}
}
void compare(char *c[],int n)
{
int i = 0,j = 0;
int max;
int sum = 0;
if(*c[n]>=65&&(*c[n]+1)>=97)
{
sum = strlen(c[n]);
*c[n] = *c[n] + 32;
for(i = 0;i<sum;i++)
{
if(*c[i]==' ')
{
continue;
}
for(j = 1;j<sum;j++)
{
if(*c[j] == ' ')
{
continue;
}
else if(*c[i]>*c[j])
{
max = *c[i];
*c[i] = *c[j];
*c[j] = max;
}
}
}
}
else
{
sum = strlen(c[n]);
for(i = 0;i<sum;i++)
{
for(j = 1;j<sum;j++)
{
if(*c[i]>*c[j])
{
max = *c[i];
*c[i] = *c[j];///////////////////字符串常量不可改变
*c[j] = max;
}
}
}
}
}
|