| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 854 人关注过本帖
标题:这个函数看不懂
取消只看楼主 加入收藏
gdtwgz
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-5-11
收藏
 问题点数:0 回复次数:3 
这个函数看不懂
这个是比较字符串的。。。但是那个函数:
int strcmp(char *p1,char *p2)
{int i;
i=0;
while(*(p1+i)==*(p2+i))
if(*(p2+i++)=='\0')return(0);
return(*(p1+i)-*(p2+i));
}

为什么*(p2+i++)等于'\0'就可以结束了?如果*(p1+i++)不是‘\0’怎么办?
那个字符串的指针是自动自加的对把??好象是这样


#include<stdio.h>
void main()
{int strcmp(char *p1,char *p2);
int m;
char str1[20],str2[20],*p1,*p2;
printf("input two string:\n");
scanf("%s",str1);
scanf("%s",str2);
p1=&str1[0];
p2=&str2[0];
m=strcmp(p1,p2);
printf("result:%d\n",m);
}
int strcmp(char *p1,char *p2)
{int i;
i=0;
while(*(p1+i)==*(p2+i))
if(*(p2+i++)=='\0')return(0);
return(*(p1+i)-*(p2+i));
}
搜索更多相关主题的帖子: 函数 
2007-05-13 17:40
gdtwgz
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-5-11
收藏
得分:0 
以下是引用acmilann在2007-5-13 17:59:16的发言:
你这个应该不是库函数中的比较字符串!
要用直接调用库就行了!

知道可以调用,但我是为了搞懂为什么,为了学东西,,,,


2007-05-17 00:58
gdtwgz
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-5-11
收藏
得分:0 
我发的东西是正确的。。书上写的,上机也对的。。但就是搞不懂,,所以不需要修改,,,只帮我解释一下就好了。。
在这个函数中,当(p2+i++)=='\0',return(0),而回0意思就是说P1,P2相同。。。为什么单(p2+i++)=='\0'就可以。。如果*(p1+i++)不是‘\0’怎么办?
我的问题是这样

2007-05-17 01:02
gdtwgz
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-5-11
收藏
得分:0 

呵呵,懂了,谢谢啊,我的问题都你答的,真的很感谢啊


2007-05-19 02:07
快速回复:这个函数看不懂
数据加载中...
 
   



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

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