//输入3个字符串,按由小到大的顺序输出
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void Shunxu(char *str[]);
int main()
{
char ch;
ch=(char)malloc(sizeof(char)*3);
printf("please put three char:");
scanf("%s",*ch);
Shunxu(ch);
printf("resule is:\n");
puts(ch[0]);
puts(ch[1]);
puts(ch[2]);
return 0;
}
void Shunxu(char *str[])
{
char *temp;
if(strcmp(*str[1],*str[2]) >0)
{
temp=str[0];
str[0]=str[1];
str[1]=temp;
}
if(strcmp(*str[1],*str[3]) >0)
{
temp=str[1];
str[1]=str[2];
str[2]=temp;
}
if(strcmp(*str[2],*str[3]) >0)
{
temp=str[0];
str[0]=str[1];
str[1]=temp;
}
}
代码修改如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void Shunxu(char *str[]);
int main()
{
char* ch[3];
int i;
printf("please put three char:");
for(i=0;i<3;i++)
{
ch[i] = (char*)malloc(100);
scanf("%s",ch[i]);
}
Shunxu(ch);
printf("resule is:\n");
puts(ch[0]);
puts(ch[1]);
puts(ch[2]);
//释放空间
for (i=0;i<3;i++)
{
free(ch[i]);
ch[i]=0;
}
return 0;
}
void Shunxu(char *str[])
{
char *temp;
if(strcmp(str[0],str[1]) >0)
{
temp=str[0];
str[0]=str[1];
str[1]=temp;
}
if(strcmp(str[0],str[2]) >0)
{
temp=str[0];
str[0]=str[2];
str[2]=temp;
}
if(strcmp(str[1],str[2]) >0)
{
temp=str[1];
str[1]=str[2];
str[2]=temp;
}
}
scanf("%s",ch);
把*号去掉
void Shunxu(char * str[])
改为
void Shunxu(char str[])
char * str[]就是二维数组啦