简单的str函数重写
来源:互联网 发布:淘宝店装修视频 编辑:程序博客网 时间:2024/06/05 14:57
#include<stdio.h>#include<stdbool.h>/*简单的str函数重写*/int my_atoi( const char *str ){ if (str == 0 ) return 0; int nRet = 0; bool bFlag = false; int i=0; if (strlen(str) == 0) return 0; for (i=0; i<strlen(str); ++i) { if ( str[i] == ' ' && (!bFlag)) continue; if ( str[i] >= '0' && str[i] <= '9') { nRet = nRet * 10 + ( str[i] - '0'); bFlag = true; continue;} break; } return nRet;}int my_strlen(const char *str){ char *p=str; int count=0; while(*(p+count)!=NULL) { count++; } return count;}char *my_strcpy(char *s1,const char *s2){ char *p2=s2; char *p1=s1; while(*p2!=NULL) { *p1=*p2; p2++; p1++; } *(p1++)='\0'; return p1;}int my_strcmp(const char *str1,const char *str2){ while (*str1 != '\0' && *str2 != '\0' && *str1 == *str2) { str1++; str2++; } int res = *str1 - *str2; if (res == 0) return 0; else if (res > 0) return 1; else return -1;}void *my_memset(void *s,int c,size_t n){ int i=0; while(i!=n) { *(char *)(s+i)=c;//转换指针类型 i++; } return s;}char *my_strchr(const char *s,int c){ char *p=s; while(*p!='\0') { if(*p==c) return p; p++; } return NULL;}char *my_strcat(char *s1,char *s2){ strcpy(s1+strlen(s1),s2); return s1;}int main(){ char s1[10]="as ssd"; char s2[10]="gg"; //my_strcmp(s1,s2); printf("%s\n",my_strcat(s1,s2)); return 0;}