1 //////////////////////////////////////////////////////////////////////////
 2 //   strcpy strncpy  strcat strncat   strcmp  strlen
 3 //
 4 #include "stdafx.h"
 5 #include "stdio.h"
 6 #include "string.h"
 7 #include <assert.h>
 8 char* m_strcpy(char *dest, const char *src)
 9 {
10     assert(dest && src);
11     char *ret = dest;
12     while((*dest++ = *src++) != '\0');
13     return ret;
14 }
15 
16 char* m_strncpy(char *dest, const char *src, size_t n)
17 {
18 
19     assert(dest && src);
20     size_t i;
21     for(i = 0;i < n && src[i] != '\0';i++)
22         dest[i] = src[i];
23     for(;i<n;i++)
24         dest[i] = '\0';
25     return dest;
26 }
27 
28 char* m_strcat(char *dest, const char *src)
29 {
30     assert(dest && src);
31     char *ret = dest;
32     size_t len = strlen(dest);
33     dest += len;
34     while((*dest++ = *src++) != '\0');
35     return ret;
36 }
37 
38 char* m_strncat(char *dest, const char *src, size_t n)
39 {
40     assert(dest && src);
41     size_t len = strlen(dest);
42     size_t i;
43     for(i = 0;i < n && src[i]!='\0';i++)
44         dest[len+i] = src[i];
45     dest[len+i] = '\0';
46     return dest;
47 }
48 
49 size_t m_strlen(const char *str)
50 {
51     assert(str);
52     size_t len = 0;
53     while(*str++ != '\0')
54         len++;
55     return len;
56 }
57 
58 int m_strcmp(const char *str1, const char *str2)
59 {
60     assert(str1 && str2);
61     while(*str1 && *str1 == *str2)
62     {
63         str1++;
64         str2++;
65     }
66     return *str1-*str2; 
67 }
68 
69 int main(int argc, char* argv[])
70 {
71     char *c = "555";
72     char *d = NULL;
73     char h[4] = "abc";
74     char m[20] = "12333333";
75 //    m_strcpy(h, m);
76 //    printf("%s\n", h);
77     m_strncpy(m, c, 4);
78     printf("%s\n", m);
79 //    m_strncat(m, c, 1);
80 //    printf("%s\n", m);
81 //    printf("%d\n", m_strlen(m));
82 //    printf("%d\n", m_strcmp(h, m));
83 //    printf("%d\n", m_strcmp("abd", "abg"));
84     return 0;
85 }

 

posted on 2017-03-09 20:11  北纬395427  阅读(469)  评论(0编辑  收藏  举报