本文实例讲述了C字符串操作函数实现方法。分享给大家供大家参考。具体如下:
下面是部分C字符串操作函数的实现,或许在某些笔试时可以用到!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#ifndef NULL #define NULL ((void *)0) #endif /* memcpy的实现代码 */ void * memcpy ( void *pDst, void *pSrc, int iLen) { char *pTmp = ( char *)pDst; char *pTmp2 = ( char *)pSrc; if (0 == iLen) return pDst; while (iLen--) *pTmp++ = *pTmp2++; return pDst; } /* memset的实现代码 */ void * memset ( void *pDst, int iSet, int iLen) { char *pTmp = ( char *)pDst; if (0 == iLen) return pDst; while (iLen--) *pTmp++ = ( char )iSet; return pDst; } /* strcpy的实现代码 */ char * strcpy ( char *pDst, char *pSrc) { char *pRst = pDst; do *pDst++ = *pSrc; while (*pSrc++); return pRst; } /* strcat的实现代码 */ char * strcat ( char *s, char *a) { char *save = s; for (; *s; ++s); while ((*s++ = *a++) != 0); return save; } /* strlen的实现代码 */ int strlen ( char *pStr) { int iLen = 0; while (*pStr++) iLen++; return iLen; } /* strcmp的实现 */ int strcmp ( char *s, char *t) { for (; *s == *t; s++, t++) { if (( '/0' == *s) || ( '/0' == *t)) { if (*s == *t) return 0; else break ; } } return ((*s > *t) ? 1 : -1); } /* strncmp的实现 */ int m_strncmp( char *s, char *t, int n) { if (0 == n) return 0; for (; (--n > 0) && (*s==*t); s++,t++) { if ( '/0' ==*s) return 0; } if (*s == *t) return 0; return ((*s > *t) ? 1 : -1); } /* strstr的实现 */ char * strstr ( char *s, char *find) { char c, sc; unsigned int len; if ((c = *find++) != 0) { len = lzs_strlen(find); do { do { if ((sc = *s++) == 0) return (NULL); } while (sc != c); } while (lzs_strncmp(s, find, len) != 0); s--; } return (( char *)s); } |
希望本文所述对大家的C语言程序设计有所帮助。