CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

程序员考试中的一道很简单的c试题,有个问题

楼主mengli1(清风使)2002-08-22 09:55:00 在 C/C++ / C语言 提问

int   strcmp(char   *s,char   *t);  
  {  
      while(*s   &&   *t   &&   ________)  
          {s++,t++};  
          return_______;}  
   
  请问第一个空填什么?这个while循环在这里的作用是什么?  
  问题点数:30、回复次数:14Top

1 楼netbian(寻欢のLEE)回复于 2002-08-22 10:00:34 得分 0

这是做什么用的?Top

2 楼liushmh(想开书店:) )回复于 2002-08-22 10:01:50 得分 8

1,*s==*t  
  2,*s-*t  
  这个while循环在这里的作用是什么?  
  判断所有字符  
  Top

3 楼mengli1(清风使)回复于 2002-08-22 10:02:22 得分 0

程序用于比较两个字符的大小,大于输出1,小于输出-1,等于输出0Top

4 楼mengli1(清风使)回复于 2002-08-22 10:05:19 得分 0

我觉得这是一个函数  
      用实参分别传递给*s,*t,传递进来是什么就是什么,为什么说判断所有字符Top

5 楼sandrowjw(我的小猫照片给弄坏了,心都碎了)回复于 2002-08-22 10:13:51 得分 2

*s=*t  
  反正比就可以了。Top

6 楼mengli1(清风使)回复于 2002-08-22 10:17:31 得分 0

不理解,觉得while在这里完全可以去掉Top

7 楼ygbxh(一个笨小孩)回复于 2002-08-22 10:18:11 得分 2

这是strcmp函数的源代码吧  
  strcmp用来比较两个字符串*s,*t的大小  
  返回值大于0,   则s>t  
  返回值小于0,   则s<t  
  返回值等于0,   则两字符串相等  
  Top

8 楼liushmh(想开书店:) )回复于 2002-08-22 10:19:22 得分 4

这里是循环判断每个字符,如果去掉就只能比较单个字符了  
  do   you   understand?Top

9 楼Taliux(彻夜孤灯)回复于 2002-08-22 10:21:52 得分 2

*s==*t  
  *s-*t  
  Top

10 楼ygbxh(一个笨小孩)回复于 2002-08-22 10:24:16 得分 2

int   strcmp(char   *s,char   *t);  
  {  
      while(*s   &&   *t   &&   *s==*t)     //当字符值相等时取下一字符值  
          {s++,t++};  
      return   (*s-*t);  
  }  
  Top

11 楼mengli1(清风使)回复于 2002-08-22 10:27:18 得分 0

int   strcmp(char   *s,char   *t);  
  它们可以比较字符串吗?char   *s,char   *t   我的理解这两个形参本来就是单字符嘛?  
      如果是比较字符串的话,应该写成   char   s[n]和char   t[n]才对啊,这才是比较  
  多个字符Top

12 楼mengli1(清风使)回复于 2002-08-22 10:30:07 得分 0

“当字符值相等时取下一字符值”既然相等。那s,t的下一个字符还不是一样相等?有此必要吗?Top

13 楼Tommy()回复于 2002-08-22 10:37:07 得分 10

mengli1(清风使)    
        还是先补一下指针方面的内容吧。  
   
  C中的数组和指针的用法本来就差不多,char*指向是可以是单个字符,也可以是一个字符数组。在作为形参时,char*s和chars[]是一个意思。  
   
  "aa"和"ab"两个字符串,第一个字符值相同,但是第二个字符值就不一样了。Top

14 楼ygbxh(一个笨小孩)回复于 2002-08-23 10:47:19 得分 0

to     mengli1(清风使)    
   
  你的理解是不正确的。char   *s,char   *t   两个字符型指针型参并不表示它们是单个字符,而是说明s和t的值是两个地址值。  
   
  函数被调用时,s和t分别被赋予了两个字符串(假设位arr1[]、arr2[])的首地址。*s=arr1[0],*t=arr2[0]。取下一字符时,*s=arr1[1],*t=arr2[1]。Top

相关问题

  • 微软程序员考试题
  • 请问那里有-程序员考试-2001年试题?(下载)
  • 一道96程序员考试题,请教几个问题
  • 程序员考试中下午题考c++吗
  • 明年程序员考试改成c++,是不是真的?
  • 程序员考试。。。
  • 程序员考试
  • 程序员考试
  • 程序员考试
  • 程序员考试

关键词

  • 字符
  • 函数
  • 循环
  • strcmp
  • 小于
  • 输出
  • 大于
  • 传递
  • 返回值
  • 大小

得分解答快速导航

  • 帖主:mengli1
  • liushmh
  • sandrowjw
  • ygbxh
  • liushmh
  • Taliux
  • ygbxh
  • Tommy

相关链接

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

广告也精彩

反馈

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