奇怪的现象,麻烦大家帮忙编译下,谢谢
nilo 2007-08-27 05:15:43 不知道怎么搞的,为什么以前我编译这程序就没有警告,而且运行正常,可以比较最大公共字符串,今天使用返回数组发现不可以,结果翻来了这个以前写的当时调试的没问题的程序看了看,它也不可以了,真不明白是怎么回事,我以前就是VC6.0编译,现在还是,VC6.0就没重新安装过,什么都没变,为什么会出现这种现象呢?我真觉得奇怪,麻烦装VC6.0的帮忙测试下这个程序,为什么不可以了,真郁闷!
#include <stdio.h>
#include <string.h>
char *comstr(char *, char *);
int maxstr(char *, char *);
int main()
{
char str1[100],str2[100],*str3;
printf("输入两个字符串!\n");
gets(str1);
gets(str2);
if (strlen(str1) >= strlen(str2)) str3=comstr(str1,str2);
else str3=comstr(str2,str1);
printf("最大公共字符串是:%s\n",str3);
return 0;
}
char *comstr(char *Lstr, char *Sstr)
{
int i,j;
char string[100],maxstring[100]="\0";
if(strstr(Lstr,Sstr)!=NULL) return Sstr;
for(i=strlen(Sstr)-1;i>=0;i--)
{
for(j=0;j<=(int)strlen(Sstr)-i;j++)
{
memcpy(string,&Sstr[j],i);
string[i]='\0';
if(strstr(Lstr,string)!=NULL)
if(maxstr(string,maxstring)==1) strcpy(maxstring,string);
}
}
return maxstring;
}
int maxstr(char *string, char *maxstring)
{
int i,s=0,m=0;
for(i=strlen(string)-1;i>=0;i--) s+=((int)string[i]);
for(i=strlen(maxstring)-1;i>=0;i--) m+=((int)maxstring[i]);
if (s>m) return 1;
else return 0;
}