| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:关于 字符串比较的问题
只看楼主 加入收藏
m15093201628
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-2-14
结帖率:81.82%
收藏
已结贴  问题点数:8 回复次数:4 
关于 字符串比较的问题
程序代码:
int strcmp1(char *p1,char *p2)
{

 for(;*p1=*p2;)

 {
  if(!*p2)
    return 0;
  p1++;
  p2++;

 }
  return(*p1-*p2);
}
我一直 不理解 字符串 是如何比较的  谁能 给我 讲 一下,    另外  讲一下  上面 程序 最后 一句 到底 是表示 什么
搜索更多相关主题的帖子: 字符串 如何 
2012-02-20 22:27
新手菜鸟鸟
Rank: 2
等 级:论坛游民
帖 子:37
专家分:57
注 册:2012-1-15
收藏
得分:0 
能发一段完整的代码看么?
2012-02-20 22:47
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:5 
程序代码:
int strcmp1(char *p1,char *p2)
{
for(;*p1==*p2;)---》这里是等于好
{
  if(!*p2)
    return 0;
  p1++;
  p2++;
}
  return(*p1-*p2); 当2个不相等是 根据正负来判断哪个长 哪个短。。。。。。
}


通过你列子,想起来我看谁的一本书了。
常量和静态都放在一个静态区还是什么地方。。。
我开始认为你的程序可能存在溢出,但p1的字符串比字符串2断 p1指向非法地址 你又用*p1 可能就溢出了。

但我验证一下是不会的。

然后我测试了一下
程序代码:
void main()
{
    char *str1 ="12345";
    char *str2 ="789";
    char *str3 ="abcde";
    int i = 0;
    while(getchar())
    printf("%c",*str1++);
   
}
然后想起来上面那本书来了,
可能静态区可以随意访问。

而且发现你运行代码。
输去12345/0789/0abcde 然后面一部分就有乱码出现了。。
就可以静态区就是一块内存块。。
但不知道有多大啊,要是我到边界的时候不知道会发生什么啊。。

---------------
后面测试
几乎都是\0 也就是数字0  但也会出现非0 负数出来。。。。。

[ 本帖最后由 小鱼儿c 于 2012-2-20 23:16 编辑 ]

用心做一件事情就这么简单
2012-02-20 22:50
转角有梦在等
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:31
专家分:95
注 册:2012-2-4
收藏
得分:3 
怎么说那他用的是指针,for(;* ==* ;) 是指向个字符串(数组),a[0] == b[0] 开始到。/0 /0是假,跳出for
  a[0]==b[0]; 是比的数中组的是用ascii码比,相同就p++ q++
   一直比下去,  直到p!=q return 0 就是假
 最后*p-*q 比叫那个字符串大

一起努力,,,  QQ:7325231
2012-02-20 22:51
m15093201628
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-2-14
收藏
得分:0 
回复 3楼 小鱼儿c
字符串 长的就大 ,  短的 就小啊   我可以这样理解吗
2012-02-22 12:00
快速回复:关于 字符串比较的问题
数据加载中...
 
   



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

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