strcpy,strncpy,strcmp,strncmp,strcat,strlen..还有啥?

呃,鄙视多了就得学会笔试

  1 #include<iostream>
2 #include<cstdlib>
3 #include<cassert>
4 #include"strh.h"
5 using namespace std;
6
7 int main()
8 {
9 char str1[] = "hello";
10 char str2[] = "word";
11
12 cout << strcat1(str1, str2) << endl;
13 cout << strcpy1(str1, str2) << endl;
14
15 char str3[] = "hello";
16 cout << strcmp1(str3, str2) << endl;
17 cout << strlen1(str3) << endl;
18
19 char str4[] = "maxwell house";
20 char str5[] = "maxwellhouse!";
21 cout << strncmp1(str4, str5, 9) << endl;
22
23 char str6[] = "shit";
24 char str7[] = "fuck you!";
25 cout << strncpy(str6, str7, 6) << endl;
26
27
28 system("pause");
29 return 0;
30 }
31
32 char *strcat1(char *strDest, const char *strSrc)
33 {
34 char *address = strDest;
35
36 assert(strDest != NULL && strSrc != NULL);
37
38 while(*strDest != '\0')
39 {
40 strDest ++;
41 }
42
43 while(*strSrc != '\0')
44 {
45 *strDest = *strSrc;
46 strDest ++;
47 strSrc ++;
48 }
49
50 *strDest = '\0';
51 return address;
52 }
53
54 char *strcpy1(char *strDest, const char *strSrc)
55 {
56 char *address = strDest;
57
58 assert(strDest != NULL && strSrc != NULL);
59
60 while(*strSrc != '\0')
61 {
62 *strDest ++ = *strSrc ++;
63 }
64
65 *strDest = '\0';
66
67 return address;
68 }
69
70 int strcmp1(const char *str1, const char *str2)
71 {
72 assert(str1 != NULL && str2 != NULL);
73
74 while((*str1 && *str2) && (*str1 == *str2))
75 {
76 str1 ++;
77 str2 ++;
78 }
79
80 return *str1 - *str2;
81 }
82
83 int strlen1(const char *str)
84 {
85 int len = 0;
86
87 assert( str != NULL);
88
89 while(*str != 0)
90 {
91 str ++;
92 len ++;
93 }
94
95 return len;
96 }
97
98 int strncmp1(const char *str1, const char *str2, size_t n)
99 {
100 if(n < 0)
101 return 0;
102 assert(str1 != NULL && str2 != NULL);
103
104 while((n--) && (*str1 && *str2) && (*str1 == *str2))
105 {
106 str1 ++;
107 str2 ++;
108 }
109
110 return *str1 - *str2;
111 }
112
113 char *strncpy(char *strDest, const char *strSrc, size_t n)
114 {
115 assert(strSrc != NULL && strDest != NULL);
116
117 char *address = strDest;
118
119 while((n--) && (*strSrc != '\0'))
120 {
121 *strDest ++ = *strSrc ++;
122 }
123
124 *strDest = '\0';
125
126 return address;
127
128 }



原文地址:https://www.cnblogs.com/mrpomelo/p/2243588.html