关于字符串判断问题~

vb00001 2007-04-06 06:12:47
请大家看看这段代码问题出在哪里?
我想实现这个功能:
输入exit退出,否则继续询问.

#include <iostream.h>

int main()
{
char input[4];
again:
cin>>input;
if(input=="exit")
{
return 1;
}
else
{
goto again;
}
return 0;
}

运行后,发现输入什么都一样。
本人不胜感激。
...全文
208 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdz609 2007-04-06
  • 打赏
  • 举报
回复
个人认为用goto无所谓,有时你还必须得用goto才省事。
另外,楼主的字符串比较应该用strcmp,然后用于接收字符串的字符数组不应该为4,容易产生问题。
WingForce 2007-04-06
  • 打赏
  • 举报
回复
个人倒是认为lz用goto无有不妥之处
JoeryLew 2007-04-06
  • 打赏
  • 举报
回复
#include<iostream.h>
#include<string>
int main()
{
char input[5];
do
{
cin>>input;
}while(strcmp(input,"exit"));
return 0;
}
这样感觉好一点吧!
JoeryLew 2007-04-06
  • 打赏
  • 举报
回复
没看到楼主改了的,那样可以,但是感觉不舒服.
JoeryLew 2007-04-06
  • 打赏
  • 举报
回复
第一,最好不用goto;第二,if(input=="exit")错误,不能比较字符串,参看楼上的。无论你输入什么,绝对 input=="exit" 为FALSE,所以goto又做,实际是个死循环了。
vb00001 2007-04-06
  • 打赏
  • 举报
回复
我把它写成了这样,

#include <iostream.h>
#include <string.h>

int main()
{
char input[5];
//again:
cin>>input;
if(strcmp(input,"exit")==0)
//if((input[0]=='e') && (input[1]='x') && (input[2]='i')
//&& (input[3]=='t') && (input[4]==0))
{
return 1;
}
else
{
main();
}
return 0;
}

难免还有不足的地方,请过路的人指出,谢谢!
cccbuiler 2007-04-06
  • 打赏
  • 举报
回复
if(input=="exit")
这句是什么意思啊?
要比较字符串也不要这样啊
if(strcmp(input,"exit"))
spookxiu 2007-04-06
  • 打赏
  • 举报
回复
你这里input的值是数组input[4]的首地址,并不是值。
所以肯定不等于"exit"。
vb00001 2007-04-06
  • 打赏
  • 举报
回复
goto不好,难道用main();比较好?
vb00001 2007-04-06
  • 打赏
  • 举报
回复
goto不好难道用main();比较好?
vb00001 2007-04-06
  • 打赏
  • 举报
回复
知道怎么改就说呗,我也只是个新手,请大家不要怪罪,谢谢。
不想低调 2007-04-06
  • 打赏
  • 举报
回复
是啊,还是找本看看先
hellox 2007-04-06
  • 打赏
  • 举报
回复
goto,,不好...
Generics 2007-04-06
  • 打赏
  • 举报
回复
我老天,这是你写的程序?跟谁学的?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧