CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

请教一个例题·

楼主Owl_xiang(owl_mei)2006-03-14 10:55:38 在 C/C++ / C语言 提问

一个函数strcmp,比较字符串。  
  int   strcmp(char   *s,char   *t)  
  {  
        while(*s&&*t&&(1))  
        {  
              s++;  
              t++;  
        }  
        return   (2);  
  }  
  如果s<t,返回负数;s>t,返回正数;s=t,返回0;  
  则该程序(1)、(2)处分别应填写为??? 问题点数:50、回复次数:21Top

1 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-14 11:03:27 得分 20

1:*s==*t  
  2:(*s==*t)?(0):((*s)?(1):(-1))Top

2 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-14 11:10:49 得分 0

以上有问题....  
  未想到如何不增加临时变量计算s,t长度....Top

3 楼Owl_xiang(owl_mei)回复于 2006-03-14 11:18:55 得分 0

dengdai.........Top

4 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-14 11:37:10 得分 0

如果s<t,返回负数;s>t,返回正数;s=t,返回0;  
  ------------  
  这个条件是长度?  
  Top

5 楼Owl_xiang(owl_mei)回复于 2006-03-14 11:44:22 得分 0

是的。我做的题就这样说的。。。Top

6 楼ytfrdfiw()回复于 2006-03-14 11:45:32 得分 0

对,应用strlen先判断长度是否一致,否则没必要比了。其他如上很好了。Top

7 楼du51(郁郁思扬)回复于 2006-03-14 11:46:00 得分 20

1:*s==*t  
  2:*s-*t  
  Top

8 楼songsong33(天堂里的蚊子)回复于 2006-03-14 11:46:14 得分 0

1:*s==*t  
  2:(*s==*t)?(0):(*t-*s)  
  Top

9 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-14 11:53:01 得分 0

*s-*t仅仅是比较不同时候的那一个字符....不是长度Top

10 楼du51(郁郁思扬)回复于 2006-03-14 11:55:41 得分 0

如果s<t,返回负数;s>t,返回正数;s=t,返回0  
  我做的题就这样说的。。。  
   
  应该就是*s-*t了.和长度没什么关系.Top

11 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-14 11:56:16 得分 0

如果s<t,返回负数;s>t,返回正数;s=t,返回0;  
  ------------  
  这个条件是长度?  
   
  是的。我做的题就这样说的。。。  
   
  ......  
  Top

12 楼du51(郁郁思扬)回复于 2006-03-14 12:02:19 得分 0

如果我说的不错.楼主对这个函数的意思还不是很理解.  
  要是理解也不会拿来这里问了.  
   
  string   compare  
  比的就是字符串大小,说白了,第一个不同字符之间的差值.  
   
  如果s<t,返回负数;s>t,返回正数;s=t,返回0;  
  从这一句就应该知道是比较字符串的,而不是长度.  
  至于楼主的回答.有点自相矛盾.  
   
  呵呵..也可能我理解的不大对吧.Top

13 楼Owl_xiang(owl_mei)回复于 2006-03-14 12:17:50 得分 0

我还真的不是很理解     再想想。。。Top

14 楼mp6()回复于 2006-03-14 12:39:45 得分 0

同意du51(郁郁思扬),其实基本上就是一个字符串比较的实现。Top

15 楼mp6()回复于 2006-03-14 12:40:46 得分 5

TC库函数里面的strcmp就是这样返回的Top

16 楼Owl_xiang(owl_mei)回复于 2006-03-14 14:55:54 得分 0

du51(郁郁思扬):  
  照你的意思。我试了一下!  
  如下:  
  char   *a="hellaaabbbccczzz";  
  char   *b="hello";  
  *a、*b中,只要对应的第五个字符a<o,  
  则不管*a中第五个以后是什么字符,都要返回负数。  
  这样就算a<b了吗?Top

17 楼duduhaha(三人行必有我师)回复于 2006-03-14 15:02:23 得分 5

照你的意思。我试了一下!  
  如下:  
  char   *a="hellaaabbbccczzz";  
  char   *b="hello";  
  *a、*b中,只要对应的第五个字符a<o,  
  则不管*a中第五个以后是什么字符,都要返回负数。  
  这样就算a<b了吗?  
   
  就是这个意思啊。  
  Top

18 楼Owl_xiang(owl_mei)回复于 2006-03-14 15:02:51 得分 0

比的就是字符串大小,说白了,第一个不同字符之间的差值.  
   
  ------------------  
   
  是这样的吗?  
  如果是这样的话,“du51(郁郁思扬)”的答案就应该是正确的!  
  初学,还忘大家多执教!见笑了!!!  
  Top

19 楼Owl_xiang(owl_mei)回复于 2006-03-14 15:07:01 得分 0

找了下资料。确实是这样的!  
  谢谢大家了Top

20 楼ncsy1983(游客)回复于 2006-03-14 16:26:26 得分 0

int   strcmp2(char   *p1,char   *p2)  
  {  
  while(*p1   &&   *p2   &&   *p1==*p2   )  
  {  
  p1++;  
  p2++;  
  }  
  return   *p1>=*p2?*p1:-1;  
  }  
   
  调试没问题..Top

21 楼tomy031(唐泊虎)回复于 2006-03-15 15:43:21 得分 0

string   compare  
  比的就是字符串大小,说白了,第一个不同字符之间的差值.Top

相关问题

  • SL275例题
  • 钱能的一个例题
  • Thinking in java Chapter06的例题
  • JAVA SWING二个例题
  • 一道《数据结构》的例题。
  • 在C++ Primer中例题的问题
  • 老师说的例题,可是不行……
  • <<c++primer>>中的一道例题
  • 林锐书上的一道例题
  • 看不懂书上的例题!!!

关键词

  • 字符
  • 函数
  • 正数
  • 字符串
  • 长度
  • 返回
  • 理解
  • strcmp
  • 做的题就这样
  • 就是

得分解答快速导航

  • 帖主:Owl_xiang
  • dragonzxh
  • du51
  • mp6
  • duduhaha

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo