c++编程中 请问在猜字谜游戏,如何判断一个字符串是否正确,下面是一个小的程序,帮忙看看谢谢!!!

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
char a;
int sum=0,n;
for(int i=1;i<3;i++)
{
cout<<"输入您的题号";
cin>>n;
if(n==1)
{
cout<<"今岁不战,明年不征?请猜一交通工具"<<endl;
cin>>a;
if(a=="拖斗")
sum++;
}
else if(n==2)
{
cout<<"兄弟四五人,各进一道门,要是进错人,定会笑死人?请猜一生活用品"<<endl;
cin>>a;
if(a=="纽扣")
sum++;
}
}
cout<<sum:
return 0;
}

你是用char 字符来接收 输入的答案
这样就错了
应该
char a[200]={0};

if(a=="拖斗")
改成
if( strcmp(a,"拖斗") == 0 ) 其他的判断也改成这样

需要注意的是 再每次cin<<a;之前 将字符串置下空
memset(a,'\0',sizeof(a); 在每个cin<<a;前面加上这句。
这个需要加头文件<string.h>

这样应该就能得到你要的结果了....
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-07
其中字符串比较的语句应该会出现编译错误。
应该改成:strcmp(a, "拖斗")==0;
而且记住#include <cstring>
而且对字符串a的声明应改为:char a[10];
第2个回答  2012-06-07
对比哦..输入答案a..然后与你定的答案相等的话..就正确..
第3个回答  2012-06-07
#include "stdafx.h"
#include "string.h"
#include <iostream>
using namespace std;
int main()
{
string a;
int sum=0,n;
for(int i=1;i<3;i++)
{
cout<<"输入您的题号";
cin>>n;
if(n==1)
{
cout<<"今岁不战,明年不征?请猜一交通工具"<<endl;
cin>>a;
if(a=="拖斗")
sum++;
}
else if(n==2)
{
cout<<"兄弟四五人,各进一道门,要是进错人,定会笑死人?请猜一生活用品"<<endl;
cin>>a;
if(a=="纽扣")
sum++;
}
}
cout<<sum:
return 0;
}
可以把a定义为string类型或者定义char类型的数组...
相似回答