2 hexiuwei90 hexiuwei90 于 2016.03.11 21:32 提问

本地函数定义非法;C++

#include
#include
using namesapce std;
int main()
{
bool AcontainsB(char * A, char * B){
int have = 0;
while (*B){
have |= 1 << (*(B++) - 'A');
}
while (*A){
if ((have&(1 << *(A++) - 'A')) == 0){
return false;
}
}
return true;
}
char A[] = { "ABDCK" };
char B[] = {"ABC"};
bool res;
res = AcontainsB( A , B);
cout <<res << endl;
system("pause");
return 0;

}

2个回答

cxsmarkchan
cxsmarkchan   2016.03.11 21:37
已采纳

C++不支持嵌套函数,试试这么写:

//注意添上include和using namespace
bool AcontainsB(char * A, char * B){
int have = 0;
while (*B){
have |= 1 << (*(B++) - 'A');
}
while (*A){
if ((have&(1 << *(A++) - 'A')) == 0){
return false;
}
}
return true;
}

int main()
{
char A[] = { "ABDCK" };
char B[] = {"ABC"};
bool res;
res = AcontainsB( A , B);
cout <<res << endl;
system("pause");
return 0;
}
hexiuwei90
hexiuwei90   2016.03.11 21:47

谢谢!是这么回事儿,自定义函数不能放在主函数内。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!