本文实例讲述了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语言程序设计有所帮助。