一道微软面试题 曾经到微软求职,接受微软公司一位资深软件工程师的面试题如下: 写函数strcpy的代码。 (容易吧?! 但就这道题有80%以上的人得0分!) 有谁可以编一个让小生借鉴一下?一定给分!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不明白你的意思,是不是...void main( void ){ char string[80]; strcpy( string, "Hello world from " ); strcat( string, "strcpy " ); strcat( string, "and " ); strcat( string, "strcat!" ); printf( "String = %s\n", string );} 都没说清楚要求,任何情况下表现和库函数strcpy一模一样? char * strcpy (char * dst, const char * src){ char * cp = dst; while( *cp++ = *src++ ); /* Copy src over dst */ return( dst );}如果错了你就去找微软吧,这是从它的库里摘出来的 char *strcpy(char *strDest, const char *strSrc);{ assert((strDest!=NULL) && (strSrc !=NULL)); char *address = strDest; // 2分 while( (*strDest++ = * strSrc++) != ‘\0’ ) NULL ; return address ; }摘自《高质量C++编程》 不是拉,是让你写一个函数实现strcpy一样的功能。 是自己写函数吧!char *strcpy(char *strD,char *strS);{ ... int strS_length = strlen(strS); char *strD = new char[strS_length]; for ( int i = 0; i < strS_lenth ; i++ ) { strD[i] = strS[i]; } ... return (strD); ...}大致如此 上面编的不错,但是不一定得全份,判断一下dst是否是NULL, scr是否是NULL,等等,还不一定的全分,还要判断地址有效吗,偶也不清楚,反正上面不怎摸容易(写到楼上的水平还不太难) 不是,他的意思是:自己用代码实现函数strcpy。原型:extern char *strcpy(char *dest,char *src);功能:把src所指由NULL结束的字符串复制到dest所指的数组中。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。char *strcpy(char *destination,const char *source){ while(*destination++=*source++) ; return(destination-1);} char *strcpy(char *strDest, const char *strSrc);{ assert((strDest!=NULL) && (strSrc !=NULL)); char *address = strDest; while( (*strDest++ = * strSrc++) != ‘\0’) NULL ; return address ; } 如何指定通过特定的vpn转发网络连接? 怎么直接在对话框指定坐标输出字符 vc月薪要达到8K以上要掌握哪些东西,大家都谈谈看法(散分). [求一段代码让函数停下来执行消息处理,处理后返回该函数继续执行,文中有例子~] 如何在两个窗口类之间传递自定义消息? VC6中用CL编译多文件的问题 数据结构初始化问题 请问什么地方有《vc++高级界面特效制作百例》这本书的配套光盘下载? 有谁能解释一下:同步与异步,阻塞和非阻塞的区别。 在98下做的程序在XP下使用,是不是也具有XP风格? c++怎样计算平方或立方??? 高分求购,怎么识别图象中文字的源码!!!!
void main( void )
{
char string[80];
strcpy( string, "Hello world from " );
strcat( string, "strcpy " );
strcat( string, "and " );
strcat( string, "strcat!" );
printf( "String = %s\n", string );
}
{
char * cp = dst;
while( *cp++ = *src++ ); /* Copy src over dst */
return( dst );
}如果错了你就去找微软吧,这是从它的库里摘出来的
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest; // 2分
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}摘自《高质量C++编程》
char *strcpy(char *strD,char *strS);
{
...
int strS_length = strlen(strS);
char *strD = new char[strS_length];
for ( int i = 0; i < strS_lenth ; i++ )
{
strD[i] = strS[i];
}
...
return (strD);
...
}
大致如此
一下dst是否是NULL, scr是否是NULL,等等,还不一定的全分,还要判断地址有效吗,偶也不清楚,反正上面不怎摸容易(写到楼上的水平还不太难)
原型:extern char *strcpy(char *dest,char *src);
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
char *strcpy(char *destination,const char *source)
{
while(*destination++=*source++)
;
return(destination-1);
}
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest; while( (*strDest++ = * strSrc++) != ‘\0’)
NULL ;
return address ;
}