c++ cstring : strcpy, strcmp,strcat 常用函数实现

 1 /*************************************************************************
 2  > File Name: cstring.cc
 3  > Author: lzzk
 4  > Mail: 1259367356@qq.com 
 5  > Created Time: 2012年09月21日 星期五 11时07分47秒
 6  ************************************************************************/
 7 
 8 #include<iostream>
 9 using namespace std;
10 #include<cassert>
11 
12 char * strcpy( char * dest, const char * src )
13         {
14             char *addr = dest;
15             assert( ( dest != NULL ) && ( src != NULL ) );
16             while( *src )
17                 {
18                     *dest++ = *src++;
19                 }
20             *dest = '\0';
21             return addr;
22         }
23 
24 
25 char *  strcat( char * dest, const char * src )
26         {
27             char *addr = dest;
28             assert( ( dest != NULL ) && ( src != NULL ) );
29             while( *dest )  dest++ ; // attention : if use "while( *dest ++ ); " ,dest point to behind '\0'
30             while( *dest++ = *src++ ) ;
31             return addr;
32         }
33 
34 
35 int strcmp( const char * dest, const char * src )
36         {
37             int ret = 0;
38             while( !( ret = *(unsigned char *)dest - *(unsigned char *)src ) && *src )
39                 {
40                     dest++;
41                     src++;
42                 }
43 
44             return ret;
45         
46         }
47 
48 int strlen( const char * str )
49         {
50             int len = 0;
51             assert( str != NULL );
52             while( *str++ )
53                 {
54                     len++;
55                 }
56             return len;
57         }
58 
59 
60 void* memcpy( void *dest, const void *src, size_t count )
61         {
62             char * addr = dest;
63             const char *s = src;
64             while( count-- )
65                 *addr++ = *s++;
66             return dest;
67         }
68 
69 
部分参考网络
posted on 2012-09-22 10:21 lzzk 阅读(266) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理