虎牢关之战有那些诸侯:一小段C++程序,在linux/windows下运行结果不同,帮忙看一下
来源:百度文库 编辑:中科新闻网 时间:2024/10/02 10:11:41
//用的都是很基本的东西 在linux/windows下编译通过后运行结果就是不同 不明白 待高手点拨
//正确应该为:输入 1101011011 10011 输出:11010110111110 10011 linux结果正确 windows下不正确
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
char * crc(char * a, char * b)
{
int la;
int lb = strlen(b);
int i,j;
char * c = new char;
char * d = new char;
char * result = new char;
strcpy(result,a);
for(i=0;i<lb-1;i++)
{
strcat(result,"0");
strcat(a,"0");
strcat(d,"0");
}
strcat(d,"0");
la=strlen(a);
for(i=lb-1;i<la;i++)
{
if (a[i-lb+1]=='0')
{
strcpy(c,d);
}
else
{
strcpy(c,b);
}
for(j=0;j<lb;j++)
{
if (a[i-lb+1+j]==c[j])
{
a[i+1-lb+j]='0';
}
else
{
a[i+1-lb+j]='1';
}
}
}
for(i=0;i<la-1;i++)
{
if (a[i]==result[i])
{
result[i]='0';
}
else
{
result[i]='1';
}
}
return result;
}
int main()
{
char * a = new char;
char * b = new char;
cin>>a>>b;
cout<<crc(a,b)<<endl;
cout<<b<<endl;
return 0;
}
谁能解释一下原因呢。。。
//正确应该为:输入 1101011011 10011 输出:11010110111110 10011 linux结果正确 windows下不正确
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
char * crc(char * a, char * b)
{
int la;
int lb = strlen(b);
int i,j;
char * c = new char;
char * d = new char;
char * result = new char;
strcpy(result,a);
for(i=0;i<lb-1;i++)
{
strcat(result,"0");
strcat(a,"0");
strcat(d,"0");
}
strcat(d,"0");
la=strlen(a);
for(i=lb-1;i<la;i++)
{
if (a[i-lb+1]=='0')
{
strcpy(c,d);
}
else
{
strcpy(c,b);
}
for(j=0;j<lb;j++)
{
if (a[i-lb+1+j]==c[j])
{
a[i+1-lb+j]='0';
}
else
{
a[i+1-lb+j]='1';
}
}
}
for(i=0;i<la-1;i++)
{
if (a[i]==result[i])
{
result[i]='0';
}
else
{
result[i]='1';
}
}
return result;
}
int main()
{
char * a = new char;
char * b = new char;
cin>>a>>b;
cout<<crc(a,b)<<endl;
cout<<b<<endl;
return 0;
}
谁能解释一下原因呢。。。
c++不是跨平台语言,在不同操作系统下结果不同不奇怪
唉!
又来了!