(1) strstr: char* _strstr(const char* str1,const char* str2){ assert(str1!=NULL&&str2!=NULL); int i=0,j=0,k=0; for (i=0;str1[i];i++,k=i,j=0) { while(str2[j]&&str1[k]&&str1[k++]==str2[j++]); if(str2[j]==0) return (char *)(str1+i); } return NULL; } (2) strcmp: int strcmp(const char* str1,const char* str2){ int ret=0; while((ret=*(unsigned char *)str1-*(unsigned char *)str2)==0&&*str2) str1++;str2++; if(ret==0) return 0; else if(ret<0) return -1; else return 1; } (3)strtok:这个函数我还不大熟悉,还需要仔细研究一下 char * strtok_r(char *s1, const char *s2, char **lasts) { char *ret; if (s1 == NULL) s1 = *lasts; while(*s1 && strchr(s2, *s1))//去掉前置分隔符 ++s1; if(*s1 == '/0') return NULL; ret = s1; while(*s1 && !strchr(s2, *s1)) ++s1; if(*s1) *s1++ = '/0'; *lasts = s1; return ret; }