求解程序题

guokelei 2009-02-20 12:56:25
1.int strcmp(char *p1,char *p2)
不要使用库函数比较两数,若相等return 0,p1>p2 return 1,else return -1

2.int strlen(char *p1)
不定义中间变量返回字符的长度,

谢谢!
...全文
93 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxbwelcome 2009-02-20
  • 打赏
  • 举报
回复
没有意义的题,纯粹钻牛角尖
提问的目的是解决问题
而不是为了难倒人而设置的
waizqfor 2009-02-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 passionboy03 的回复:]
第二题中的strlen(strDest+1)里面为啥加1?直接strlen(strDest)不可以吗?

引用 1 楼 waizqfor 的回复:
C/C++ code
int strcmp(const char * str1, const char * str2)
{
char *d=(char *)str1;
char *s=(char *)str2;
while(*str1==*str2&&*str2!='\0')
{
str1++;
str2++;
}
return *str1-*str2;
}



C/C++ code
int strlen(char *strDest) …
[/Quote]
不加的话 那么往下递归呢? 起不是原地踏步嘛
tangshuiling 2009-02-20
  • 打赏
  • 举报
回复

passionboy03 第二题中的strlen(strDest+1)里面为啥加1?直接strlen(strDest)不可以吗?
看楼主的要求,不是库函数strlen,是递归函数strlen,不加一怎么个递归法
passionboy03 2009-02-20
  • 打赏
  • 举报
回复
第二题中的strlen(strDest+1)里面为啥加1?直接strlen(strDest)不可以吗?

[Quote=引用 1 楼 waizqfor 的回复:]
C/C++ code
int strcmp(const char * str1, const char * str2)
{
char *d=(char *)str1;
char *s=(char *)str2;
while(*str1==*str2&&*str2!='\0')
{
str1++;
str2++;
}
return *str1-*str2;
}





C/C++ code
int strlen(char *strDest)
{
return *strDest ? 1 + strlen(strDest+1) : 0;//strlen(strDest+1)里面为啥加1?直接strlen(strDest)不可以吗?
}
[/Quote]
deerwin1986 2009-02-20
  • 打赏
  • 举报
回复
顶1楼 但是好象要返回1或-1 所以第一题稍微改下就好...
wy2001wy 2009-02-20
  • 打赏
  • 举报
回复
怎么看都是面试题,呵呵.
fallening 2009-02-20
  • 打赏
  • 举报
回复
汗,居然有手误,而且没看到1楼已经写了
fallening 2009-02-20
  • 打赏
  • 举报
回复

//不定义中间变量返回字符的长度
//这样????????
int strlen(char *p1)
{
if (*p1) return 1+strlen(--p1);
return 0;
}
Dinelgua 2009-02-20
  • 打赏
  • 举报
回复
mark
waizqfor 2009-02-20
  • 打赏
  • 举报
回复

int strcmp(const char * str1, const char * str2)
{
char *d=(char *)str1;
char *s=(char *)str2;
while(*str1==*str2&&*str2!='\0')
{
str1++;
str2++;
}
return *str1-*str2;
}



int strlen(char *strDest)
{
return *strDest ? 1 + strlen(strDest+1) : 0;
}

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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