2. 在主函数中输入5个不等长的字符串,用另一函数对它们排序,然后在主函数中输出这5个已排好序的字符串。(要求用指针数组处理)
方法一:
void sotr(char *p[])
{int i,j;
char *temp;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(strcmp(*(p+j),*(p+j+1))>0)
{temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
main()
{int i;
char *p[5],str[5][20];
for(i=0;i<5;i++)p[i]=str[i];
printf("Input 5 string;");
for(i=0;i<5;i++)scanf("%s",p[i]);
sotr(p);
printf("Now, the sequence is:\n");
for(i=0;i<5;i++)printf("%s\n",p[i]);
}
方法二:
void sotr(char *p[])
{int i,j;
char *temp;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(p[i],p[j]))>0)
{temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
main()
{int i;
char *p[5],str[5][20];
for(i=0;i<5;i++)p[i]=str[i];
printf("Input 5 string;");
for(i=0;i<5;i++)scanf("%s",p[i]);
sotr(p);
printf("Now, the sequence is:\n");
for(i=0;i<5;i++)printf("%s\n",p[i]);
printf怎么输出字符串的一部分
}
方法三:
#include<stdio.h>
#include<string.h>
void sort(char *name[],int n)
{int i,j,k;
char *p;
for(i=0;i<n-1;i++)
{ k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0)k=j;
if(k!=i){p=name[i];name[i]=name[k];name[k]=p;}
}
}
main()
{
char *name[5]={"fgsdg","ajjj","crgpopo","ffdg","bl"};
int i;
clrscr();
sort(name,5);
for(i=0;i<5;i++)printf("%s\n",name[i]);/*puts(name[i]);*/
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。