#include<stdio.h>
#include<string.h>
void seacher(char *string[],int m)
{ int i=0;
char *temp=string[0];
char *betwen;
for(i=1;i<=4;i++)
{
if(strcmp(string[i],temp)>0)
{
betwen=temp;temp=string[i];string[i]=betwen; } } //这里我选择的 是交换彼此的位置
int main()
{
char a[5][20];
char *string[5];
int i;
for(i=0;i<=4;i++)
{
scanf("%s",a[i]);
}
seacher(string,5);
printf("较大的字符串是%s",temp);部分细节拿出来分享:
定义指针数组
char *string[5];
char a[5][20];
int i;
for(i=0;i<=4;i++) //初始化
{scanf("%s",a[i]); // 指针必须得有所指的对象;这里我引入的是一个二维数组,要不就会变成一个野指针。
string[i]=a[i];
}
调用函数
seacher(string,5); //当数组作为参数时,不管是指针数组还是一般的数组,引用时,都应该用“数组”的名字。
char *temp=string[0]; //这里我引入一个字符串指针,用它来指向指针数组有点麻烦。
betwen=temp;temp=string[i];string[i]=betwen; //这里我选择的 是交换彼此的位置,而不是直接代换,要不会造成地址为空的情况。