C语言初学者的疑问。

[复制链接]
查看11 | 回复4 | 2010-9-21 11:16:53 | 显示全部楼层 |阅读模式
main()
{

while(1){

char a[]="1234567";

char b[]="0000000";

printf("qing shu ru mi ma");

scanf("%s",b);

if(a==b)

{

printf("zheng que");

}

else

{

printf("cuowu");

}

getch();}
}上面的句子哪里的原因造成只执行“ELSE”后的语句,不执行IF后的语句。即使输入1234567

回复

使用道具 举报

千问 | 2010-9-21 11:16:53 | 显示全部楼层
即使你输入"1234567"a绝对不等于ba,b只是数组的首地址,只能用for一个一个地比较,或者试试strcmp()函数…
回复

使用道具 举报

千问 | 2010-9-21 11:16:53 | 显示全部楼层
字符数组不能用==进行比较而应该使用strcmp函数进行比较。代码修正为如下:#include#includeint main(){
while(1)
{
char a[]="1234567";
char b[]="0000000"
回复

使用道具 举报

千问 | 2010-9-21 11:16:53 | 显示全部楼层
你的ab都是数组,直接a==b是比较的他们的首地址,不是内容。所以总是不等。你可以用strcmp来比较
回复

使用道具 举报

千问 | 2010-9-21 11:16:53 | 显示全部楼层
晕,多看看书这么基础的 字符串比较不是这样搞的strcmp(a,b)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行