| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1636 人关注过本帖
标题:字符数组的比较问题
只看楼主 加入收藏
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
字符数组的比较问题
我写的程序是:
#include<stdio.h>
#include<string.h>
main()
{
 char str1[20],str2[20];
 int n,m,y,s;
 gets(str1);
 gets(str2);
 s=strlen(str1);
 for(n=0;str1[n]!='\0';n++)
 {
   for(m=0;str2[m]!='\0';m++)
   if(str2[m]==str1[n])break;
  }
 if(n<s)
 y=1;
 else y=0;
 printf("%d",y);
}
我想要的效果是,如果str2里面的字符在str1里面都能找到,那么就输出y的值也就是1,如果有一个找不到,那么就输出y的值0,
我用str1[0]和str2[]里面的每个元素都比较了一遍,然后用str1[1]和str2[]里的每个元素都比较了一遍,然后……直到str1[]里的值
跟str2[]里德每个值都比较了一遍然后判断是该返回0还是1,哪里出错了?为什么怎么输入最后返回的都是0呢?
搜索更多相关主题的帖子: include 元素 
2011-11-07 04:11
yangguohui
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:18
专家分:21
注 册:2011-11-6
收藏
得分:8 
太复杂了!你的算法,好像你最后的if判断没有起作用!没有包括在for循环中!输出语句应该在最外层没错!
2011-11-07 04:49
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:12 
回复 楼主 小赵q1
for(n=0;str1[n]!='\0';n++)
{   
    for(m=0;str2[m]!='\0';m++)   
        if(str2[m]==str1[n])
            break;  
}
这段代码有问题,break只能退出一层循环,外层的循环会一直循环到字符串结尾,这时n等于s,所以输出结果始终不对

总有那身价贱的人给作业贴回复完整的代码
2011-11-07 07:44
快速回复:字符数组的比较问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011638 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved