《常见C字符串处理函数的源代码》由会员分享,可在线阅读,更多相关《常见C字符串处理函数的源代码(7页珍藏版)》请在金锄头文库上搜索。
1、常见 C 字符串处理函数的源代码以下是一些常见 C 字符串处理函数的源代码, ,学习它一个好处是加深理解 C 语言的理解,另一个好外是应聘面试中的笔试常常会用到它们,当然,还有一些没有列出来,或者有更好的实现方法,希望大家一起分享一下 share your code! :)/stirng.c=char *strcat(char *strDes, const char *strSrc)免费论文assert(strDes != NULL) & (strSrc != NULL);char *address = strDes;while (*strDes != 0)+ strDes;while (*s
2、trDes + = *strSrc +) != 0)NULL;return address;int strlen(const char *str)assert(str != NULL);int len = 0;while (*str + != 0)+ len;return len;char *strdup(const char *strSrc)assert(strSrc != NULL);int len = 0;while (*strSrc + != 0)+ len;char *strDes = (char *) malloc (len + 1);while (*strDes + = *str
3、Src +) != 0)NULL;return strDes;char *strcpy(char *strDes, const char *strSrc)assert(strDes != NULL) & (strSrc != NULL);char *address = strDes; while (*strDes + = *strSrc +) != 0)NULL;return address;char *strchr_(char *str, int c)assert(str != NULL);while (*str != (char) c) & (*str != 0)str +;if (*st
4、r != 0)return str;return NULL;char *strchr(const char *str, int c)assert(str != NULL);for (; *str != (char) c; + str)if (*str = 0)return NULL;return (char *) str;int strcmp(const char *s, const char *t)assert(s != NULL & t != NULL);while (*s & *t & *s = *t)+ s;+ t;return (*s - *t);char *strstr(const
5、 char *strSrc, const char *str)assert(strSrc != NULL & str != NULL);const char *s = strSrc;const char *t = str;for (; *t != 0; + strSrc)for (s = strSrc, t = str; *t != 0 & *s = *t; +s, +t) NULL;if (*t = 0)return (char *) strSrc;return NULL;char *strncpy(char *strDes, const char *strSrc, int count)as
6、sert(strDes != NULL & strSrc != NULL);char *address = strDes;while (count - & *strSrc != 0)*strDes + = *strSrc +;return address;char *strncat(char *strDes, const char *strSrc, int count)assert(strDes != NULL) & (strSrc != NULL);char *address = strDes;while (*strDes != 0)+ strDes;while (count - & *st
7、rSrc != 0 )*strDes + = *strSrc +;*strDes = 0;return address;int strncmp(const char *s, const char *t, int count)assert(s != NULL) & (t != NULL);while (*s & *t & *s = *t & count -)+ s;+ t;return (*s - *t);char *strpbrk(const char *strSrc, const char *str)assert(strSrc != NULL) & (str != NULL);const c
8、har *s;while (*strSrc != 0) s = str;while (*s != 0)if (*strSrc = *s)return (char *) strSrc;+ s;+ strSrc;return NULL;int strcspn(const char *strSrc, const char *str)assert(strSrc != NULL) & (str != NULL);const char *s;const char *t = strSrc;while (*t != 0)s = str;while (*s != 0)if (*t = *s)return t -
9、 strSrc;+ s;+ t;return 0;char *strcat(char *strDes, const char *strSrc)assert(strDes != NULL) & (strSrc != NULL);char *address = strDes;while (*strDes != 0)+ strDes;while (*strDes + = *strSrc +) != 0)NULL;return address;int strlen(const char *str)assert(str != NULL);int len = 0;while (*str + != 0)+
10、len;return len;char *strdup(const char *strSrc)assert(strSrc != NULL);int len = 0;while (*strSrc + != 0)+ len;char *strDes = (char *) malloc (len + 1);while (*strDes + = *strSrc +) != 0)NULL;return strDes;int strspn(const char *strSrc, const char *str)assert(strSrc != NULL) & (str != NULL);const cha
11、r *s;const char *t = strSrc;while (*t != 0)s = str;while (*s != 0)if (*t = *s)break;+ s;if (*s = 0)return t - strSrc;+ t;return 0;char *strrchr(const char *str, int c)我要论文网assert(str != NULL); const char *s = str;while (*s != 0)+ s;for (- s; *s != (char) c; - s)if (s = str)return NULL;return (char *
12、) s;char* strrev(char *str)assert(str != NULL);char *s = str, *t = str, c;while (*t != 0)+ t;for (- t; s t; + s, - t)c = *s;*s = *t;*t = c;return str;char *strnset(char *str, int c, int count)assert(str != NULL);char *s = str;for (; *s != 0 & s - str count; + s)*s = (char) c;return str;void *memmov
13、e (void *dest, const void *src, int count)assert(dest != NULL & src != NULL);void *address = dest;while (count -)硕士论文*(char *) dest = *(char *) src;dest = (char *) dest + 1;src = (const char *)src + 1;return address;void *memset(void *str, int c, int count)assert(str != NULL);void *s = str;while (count -)*(char *) s = (char) c;s = (char *) s + 1;return str;就是这么多了 欢迎补充!