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
部分参考网络