简单的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;}

原创粉丝点击