注册 登录
编程论坛 C++教室

崩溃,求助,面试题

一切皆安 发布于 2011-06-09 20:13, 589 次点击
已知 strcpy函数的原型是 char *strcpy (char *strDest,const char *strSrc);
其中strDest是目的字符串  strSrc是源字符串,不能调用C++/C的字符串库函数
写出strcpy函数???
char *strcpy (char *strDest,const char *strSrc);





   我快崩溃了,面试了两次,这道题都出现了,我都不知道该怎么做。
7 回复
#2
finalken2011-06-09 20:23
怎么没说返回值是什么啊?
不考虑返回值,实现很简单啊,赋值一下就好了,判断一下结束符
#3
lz10919149992011-06-09 20:53
程序代码:
#include <stdio.h>

char * strcpy(char * str1,const char * str2) {
    while(*str2)
        *str1++ = *str2++;
    str1 = '\0';
    return str1;
}

int main(void) {
    char str1[81] = "How do ", str2[81];
    gets(str2);
    strcpy(str1, str2);
    printf("%s\n", str1);
    return 0;
}   /* Output:
you think?
you think?

Process returned 0 (0x0)   execution time : 3.578 s
Press any key to continue.
*/
这种题都不会,我劝你还是不要去面试了。


[ 本帖最后由 lz1091914999 于 2011-6-10 09:32 编辑 ]
#4
一切皆安2011-06-09 21:15
还有一道题
函数N=0.0.0,flase,null  用它来跟"零值"比较可以用if 语句写成if(n==0)或者if(n!=0)
请写出 float x与"零"比较的if语句
#5
ljt2011-06-09 22:49
这两个是经常考的面试题。
bool型比较一般都这样写if(n)
指针比较就if(n == NULL)
和float比较就if(n < 0.000001 && n > -0.000001) 这个具体为什么要和这个数值比较和float型在内存中的存储方式有关,计算机组成原理里面讲了,感觉很复杂,你就记住吧。


[ 本帖最后由 ljt 于 2011-6-10 08:31 编辑 ]
#6
ljt2011-06-09 22:50
还有那个strcpy的这个是最基本的,必须得会,这个不会说明你算法指针很烂,肯定大打折扣
#7
makebest2011-06-09 22:59
说实话这道题超简单的,
char *strcpy (char *strDest,const char *strSrc);

  char * r = strDest;
  do{ *strDest=*strSrc; strDest++; strSrc++; } while( *strSrc );
  return r;

#8
乖乖承诺2011-06-10 11:30
学习了。。三楼正解
1