#include<stdio.h>
//#include<string.h>
void *(memchr)(const void *s,int c,size_t n){
const unsigned char uc = c;
const unsigned char *su;
for(su=( unsigned char *)s;0<n;++su,--n){
if (*su == uc)
return ((void*)su);
return (NULL);
}
}
int (memcmp)(const void *s1,const void *s2,size_t n){
const unsigned char *su1, *su2;
for(su1=(unsigned char *)s1,su2=(unsigned char *)s2;0<n;++su1,++su2,--n)
if (*su1 != *su2) {
return ((*su1<*su2)?-1:+1);
}else
return (0);
}
void *(memcpy)(void * s1,const void *s2,size_t n){
char *su1;
const char *su2;
for(su1=(char *)s1,su2=(char *)s2;0<n;++su1,++su2,--n)
*su1=*su2;
return (s1);
}
void *(memmov)(void *s1,const void *s2,size_t n){
char *sc1;
const char *sc2;
sc1 = (char *)s1;
sc2 = (char *)s2;
if (sc2<sc1 && sc1<sc2+n) {
for(sc1+=n,sc2+=n;0<n;--n)
*--sc1 = *--sc2;
}else
for(;0<n;--n)
*sc1++ = *sc2++;
return (s1);
}
void *(memset)(void *s,int c,size_t n){
const unsigned char uc = c;
unsigned char *su;
for(su=(unsigned char *)s;0<n;++su,--n){
*su = uc;
}
return (s);
}
char *(strncat)(char *s1,const char *s2,size_t n){
char *s;
for(s=s1;*s!='\0';s++)
;
for(;*s2!='\0' && n>0;--n)
*s++ = *s2++;
*s = '\0';
return (s1);
}
int (strncmp)(const char *s1,const char *s2,size_t n){
for(;n>0;++s1,++s2,--n){
if (*s1 != *s2) {
return ((*(unsigned char *)s1<*(unsigned char *)s2)?-1:+1);
}else if (*s1 == '\0') {
return (0);
}
}
return (0);
}
char *(strncpy)(char *s1,const char *s2,size_t n){
char *s;
for(s=s1;n>0 && *s2!='\0';--n)
*s++ = *s2++;
for(;n>0;--n)
*s++ = '\0';
return (s1);
}
char *(strcat)(char *s1,const char *s2){
char *s;
for(s=s1;*s!='\0';++s)
;
for(;(*s=*s2)!='\0';++s,++s2)
;
return (s1);
}
int (strcmp)(const char *s1,const char *s2){
for(;*s1==*s2;++s1,++s2)
if (*s1 == '\0')
return (0);
return ((*(unsigned char *)s1<*(unsigned char *)s2)?-1:+1);
}
char *(strcpy)(char *s1,const char *s2){
char *s=s1;
for(s=s1;(*s++=*s2++)!='\0';)
;
return (s1);
}
size_t (strlen)(const char *s){
const char *sc;
for(sc=s;*sc!='\0';++sc)
;
return (sc - s);
}
char *(strchr)(const char *s,int c){
const char ch = c;
for(;*s!=ch;++s)
if (*s == '\0') {
return (NULL);
}
return ((char *)s);
}
size_t (strcspn)(const char *s1,const char *s2){
const char *sc1,*sc2;
for(sc1=s1;*sc1 != '\0';++sc1)
for(sc2=s2;*sc2!='\0';++sc2)
if (*sc1 == *sc2) {
return (sc1-s1);
}
return (sc1- s1);
}
char *(strpbrk)(const char *s1,const char *s2){
const char *sc1,*sc2;
for(sc1=s1;*sc1 != '\0';++sc1)
for(sc2=s2;*sc2!='\0';++sc2)
if (*sc1 == *sc2) {
return ((char *)sc1);
}
return (NULL);
}
size_t (strspn)(const char *s1,const char *s2){
const char *sc1,*sc2;
for(sc1=s1;*sc1 != '\0';++sc1)
for(sc2=s2;*sc2!='\0';++sc2)
if (*sc1 == '\0')
return (sc1-s1);
else if (*sc1 == *sc2)
break;
return (sc1- s1);
}
char *(strrchr)(const char *s,int c){
const char ch = c;
const char *sc;
for(sc=NULL;;++s){
if(*s == ch)
sc = s;
if (*s == '\0')
return ((char *)sc);
}
}
char *(strstr)(const char *s1,const char *s2){
if (*s2 == '\0')
return ((char *)s1);
for(;(s1=strchr(s1,*s2))!=NULL;++s1){
const char *sc1,*sc2;
for(sc1=s1,sc2=s2;;)
if (*++sc2 == '\0')
return ((char *)s1);
else if (*++sc1!=*sc2)
break;
}
return (NULL);
}
char *(strtok)(char *s1,const char *s2){
char *sbegin,*send;
static char *ssave = " ";
sbegin = s1?s1:ssave;
sbegin += strspn(sbegin,s2);
if (*sbegin == '\0') {
ssave =" ";
return (NULL);
}
send =sbegin + strcspn(sbegin,s2);
if (*send !='\0') {
*send++ = '\0';
}
ssave = send;
return (sbegin);
}
int main(){
//if (memchr("sdfaf",'s',5)) {
// puts("ssss");
// }
int res;
//res = memcmp("sss","asdf",4);
//printf("%d\n",res);
char *src="asdasfaf";
char *src2="wwf";
char dest[10]={0};
//memcpy(dest,src,6);
//memset(dest,97,9);
//strncat(dest,src,4);
// puts(dest);
//res = strncmp(src,src2,4);
//printf("%d\n",res);
puts(src);
puts(src2);
// strncpy(dest,src,4);
//strcat(dest,src);
res = strcmp(src,src2);
printf("%d\n",res);
strcpy(dest,src2);
puts(dest);
res = strlen(dest);
res = strcspn(src,src2);
printf("%d\n",res);
char str[]="llll,,sf,fgeg.geget;sdfasgadfafda,";
char *pc;
pc = strtok(str,",.;");
while (pc!=NULL) {
puts(pc);
pc = strtok(NULL,",.;");
}
return 0;
}
c string.h
最新推荐文章于 2017-01-23 19:40:39 发布