首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个C++有关问题,这个程序的逻辑是没错的,可是Visual 2008编译不过去,语法应该是没异常的吧

2013-11-25 
一个C++问题,这个程序的逻辑是没错的,可是Visual 2008编译不过去,语法应该是没错误的吧!#includeiostream

一个C++问题,这个程序的逻辑是没错的,可是Visual 2008编译不过去,语法应该是没错误的吧!
#include<iostream>
using namespace std;
int main ()
{
char a[20],b[20];
cin >>a>>b;
//int alen;
//int blen;
for (int alen=0;a[alen]!='\0';alen++);
for (int blen=0;b[blen]!='\0';blen++);
cout <<"alen=" << alen << " " << "blen=" << blen <<endl;
char* c=new char[alen+blen];
for (int i=0;i<=alen+blen;i++)
{
if (i<alen)
{
c[i]=a[i];
}
else
{
c[i]=b[i-alen];
}
cout <<c <<endl;
delete [] c;
return 0;
}
}
[解决办法]
alen/blen放在for循环中声明的话,那么后面的语句是看不到的:


#include<iostream>
using namespace std;
int main ()
{
char a[20],b[20];
cin >>a>>b;
int alen;
int blen;
for (alen=0;a[alen]!='\0';alen++);
for (blen=0;b[blen]!='\0';blen++);
cout <<"alen=" << alen << " " << "blen=" << blen <<endl;
char* c=new char[alen+blen];
for (int i=0;i<=alen+blen;i++)
{
if (i<alen)
{
c[i]=a[i];
}
else
{
c[i]=b[i-alen];
}
cout <<c <<endl;
delete [] c;
return 0;
}
}


引用:
#include<iostream>
using namespace std;
int main ()
{
char a[20],b[20];
cin >>a>>b;
//int alen;
//int blen;
for (int alen=0;a[alen]!='\0';alen++);
for (int blen=0;b[blen]!='\0';blen++);
cout <<"alen=" << alen << " " << "blen=" << blen <<endl;
char* c=new char[alen+blen];
for (int i=0;i<=alen+blen;i++)
{
if (i<alen)
{
c[i]=a[i];
}
else
{
c[i]=b[i-alen];
}
cout <<c <<endl;
delete [] c;
return 0;
}
}

热点排行