老钟古

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

函数的实现要考虑全面,注重程序的代码风格,提高程序的健壮性。

strcpy函数的实现:将源字符串的内容拷贝到目的字符串中,后面的'\0'也是要拷贝到目的字符串中的。所以在调用库函数时要注意数组越界的问题。

 

 

 

 

代码
1 char* strcpy( char *strDest, const char *strSrc ) {
2      assert( ( strDest != NULL ) && ( strSrc != NULL ) ); //assert是宏不是函数,assert( strDest && strStr )
3      char *address = strDest;  
4      while( ( *strDest++ = *strSrc++ ) != '\0' );
5      return address;
6 }

 

 

strstr(s1,s2)是一个经常用的函数,他的作用就是在字符串s1中寻找字符串s2如果找到了就返回指针,否则返回NULL。

代码
 1 const char* strstr( const char *s1, const char *s2 ) {
 2     assert ( s2 && s1 );
 3     const char *= s1, *= s2;
 4     while ( *p++ == *r++ );
 5     if ( *== '\0' )
 6         return p;
 7     else {
 8         r = s2;
 9         p = ++s1;
10     }
11     return NULL;
12 }
13 
14 
15 
18 const char* _strstr( const char *str, const char *needle ) {
19     assert( needle && src );
20     const char *p1 = src, *p2 = needle;
21     while ( ( *src != '\0' ) && ( *needle != '\0' ) ) {
22         if ( *src++ != *needle++ ) {
23             needle = p2;
24             src = ++p1; //从下一个字符开始搜索needle
25         }
26     }
27     if ( *needle == '\0' )
28         return p1;
29 
30     return NULL;
31 }

 

 

posted on 2010-09-26 22:37  老钟古  阅读(302)  评论(0编辑  收藏  举报