C语言经典题-库函数strlen与strcpy工作方式
2016-10-22 10:19
232 查看
库函数strcpy的工作方式,如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:
2分
void strcpy( char *strDest, char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
4分
void strcpy( char *strDest, const char *strSrc )
//将源字符串加const,表明其为输入参数,加2分
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
7分
void strcpy(char *strDest, const char *strSrc)
{
//对源地址和目的地址加非0断言,加3分
assert( (strDest != NULL) && (strSrc != NULL) );
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
10分
//为了实现链式操作,将目的地址返回,加3分!
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ );
return address;
}
从2分到10分的几个答案我们可以清楚的看到,小小的strcpy竟然暗藏着这么多玄机,真不是盖的!需要多么扎实的基本功才能写一个完美的strcpy啊!
与strcpy类似,下面是strlen的完整版
int strlen( const char *str
) //输入参数const
{
assert( strt != NULL ); //断言字符串地址非0
int len;
while( (*str++) != '\0' )
{
len++;
}
return len;
}
2分
void strcpy( char *strDest, char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
4分
void strcpy( char *strDest, const char *strSrc )
//将源字符串加const,表明其为输入参数,加2分
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
7分
void strcpy(char *strDest, const char *strSrc)
{
//对源地址和目的地址加非0断言,加3分
assert( (strDest != NULL) && (strSrc != NULL) );
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
10分
//为了实现链式操作,将目的地址返回,加3分!
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ );
return address;
}
从2分到10分的几个答案我们可以清楚的看到,小小的strcpy竟然暗藏着这么多玄机,真不是盖的!需要多么扎实的基本功才能写一个完美的strcpy啊!
与strcpy类似,下面是strlen的完整版
int strlen( const char *str
) //输入参数const
{
assert( strt != NULL ); //断言字符串地址非0
int len;
while( (*str++) != '\0' )
{
len++;
}
return len;
}
相关文章推荐
- C语言模拟实现strcpy、strlen、strcmp、strcat
- c语言:strcpy、strncpy、 Strcat、 Strcmp 、strchr、 strstr、 Strlen等函数功能
- 怎样实现库函数strlen和strcpy
- C语言中strcpy,strcmp,strlen,strcat函数原型
- c语言:strcpy、strncpy、 Strcat、 Strcmp 、strchr、 strstr、 Strlen等函数功能
- C语言 编写程序实现库函数strlen的功能
- C语言中strcpy,strcmp,strlen,strcat函数原型
- strcpy、strlen、strcmp的不使用库函数实现
- C语言字符串函数的模拟实现(strlen、strcpy、strcat、strstr 、strcmp)
- 深入理解c语言中字符串处理函数strlen,strcpy,strcat,strcmp
- C语言中strcpy,strcmp,strlen,strcat函数原型
- C语言中strlen、strcpy、strncpy、strcat、strnact、strcmp、memcpy函数的实现
- C语言中strlen() strcpy() strcat() strcmp()函数的实现方法
- 【C语言】strlen的三种实现方法,strcmp,strcat,strcpy
- 字符串处理函数strlen、strcpy、strcat、strcmp和convert的C语言实现
- C语言中strcpy,strcmp,strlen,strcat函数原型
- C语言:模拟实现strlen、strcpy、strcmp、strReverse、strcat函数
- C语言实现strlen,atoi, strcpy等函数
- C语言中strcpy,strcmp,strlen,strcat函数原型
- C字符串——库函数系列(strlen、strcat、strcpy、strcmp)