#include "mstring.h" size_t m_strlen(const char *str) { int count; for (count=0; *str++; count++); return count; } char *m_strchr(const char *str, int c) { char ch = (char)c; while (*str && *str!=c) str++; if (*str) return str; return NULL; } //普通的方法,可以使用KMP改进 char *m_strstr(const char *str1, const char *str2) { char *tmpStr1, *tmpStr2; //判断str2是否为空 if (!str2) return NULL; if (!*str2) return str1; //循环条件:*str1!='/0' while (*str1) { for (tmpStr1=str1, tmpStr2=str2; *tmpStr2 && *tmpStr1 && *tmpStr2==*tmpStr1; ++tmpStr2, ++tmpStr1); if (!*tmpStr2) return str1; if (!*tmpStr1) return NULL; ++str1; } } int m_strcmp(const char *str1, const char *str2) { char *s1 = (char *)str1; char *s2 = (char *)str2; while (*s1 && *s2 && *s1==*s2) ++s1, ++s2; return *s1-*s2; } char *m_strcpy(char *str1, const char *str2) { char *tmp = str1; while (*tmp++ = *str2++); return str1; } char *m_strcat (char * dst, char * src) { char *tmp = dst; while (*tmp) ++tmp; while (*tmp++ = *src++); return dst; }