比较菜的问题

zjs2010 2010-05-10 09:43:03
下满是比较字符串的函数
int strcmp(char *s,char *t)
{
for ( ; *s == *t; s++,t++)
if (*s == '\0')
return 0;
return *s - *t;
}
*s-*t的值是什么啊?如果调用函数strcmp怎么用啊,返回值是个整数怎么得到的?
...全文
65 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjs2010 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 blh 的回复:]
引用 2 楼 zjs2010 的回复:

不好意思再问一句啊,要是比较两个字符数组该怎么改啊


int strcmpA(char *s,char *t, int l)
{
while ( (*s == *t) && (l > 0)
{
s++;
t++;
l--;
}
return *s - *t;
}
[/Quote]
为什么要定义int l
blh 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zjs2010 的回复:]

不好意思再问一句啊,要是比较两个字符数组该怎么改啊
[/Quote]

int strcmpA(char *s,char *t, int l)
{
while ( (*s == *t) && (l > 0)
{
s++;
t++;
l--;
}
return *s - *t;
}
十八道胡同 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zjs2010 的回复:]

不好意思再问一句啊,要是比较两个字符数组该怎么改啊
[/Quote]
2个字符数组挨个比较就是了,和strcmp原理差不多
liubingqian 2010-05-10
  • 打赏
  • 举报
回复
char a1[]="hello";
char a2[]="hello";
int r=strcmp(a1,a2);
与上面完全一样。数组名就是数组的指针。
zjs2010 2010-05-10
  • 打赏
  • 举报
回复
不好意思再问一句啊,要是比较两个字符数组该怎么改啊
liubingqian 2010-05-10
  • 打赏
  • 举报
回复
返回的是两个字符指针指向的字符的ASCII码的差。
int r=strcmp("hello","hello");

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧