比较字符串 程序 用strcmp,高手看看我的程序呐里出错了!!!

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:39:01
#include"stdio.h"
#include"string.h"
#define N 3
main ()
{
char str[N][20];
int i=0,max_i=0;
printf ("请输入你需要比较的字符串\n");
for(i=1;i<=N;i++)
gets(str[i]);
for(i=1;i<=N;i++)
{if( strcmp(str[i],str[max_i])>0)
max_i=i;}
puts(str[max_i]);

}

#include"stdio.h"
#include"string.h"
#define N 3
main ()
{
char str[N][20];
int i=0,max_i=0;
printf ("??入你需要比?的字符串\n");
for(i=0;i<N;i++)
gets(str[i]);
for(i=1;i<N;i++)
{
if( strcmp(str[i],str[max_i])>0)
max_i=i;
}
puts(str[max_i]);

}

就错了一点,可错的不轻,是数组越界

#include"stdio.h"
#include"string.h"
#define N 3
main ()
{
char str[N][20];
int i=0, max_i=0;
printf ("请输入你需要比较的字符串\n");
for(i=0;i<N;i++) //这个数组的第一行是str[0],你原来的语句越界了,下同
gets(str[i]);

for(i=0;i<N;i++) //同上
{
if( strcmp(str[i],str[max_i]) >0 )
max_i=i;
}
puts(str[max_i]);

}

/******************************************************
* 函数原型: int strcmpstd(const char *string1,const char *string2)
* 入口参数: s