strlenstrcat strcmp itoa atoi

    技术2022-05-11  88

    int Strlen(const char* str){ assert(str);

     int nlen = 0; while(str[nlen]) {  ++nlen; }  return nlen;}

    char* Strcpy(char* strDst, const char* strSource){ assert(strDst && strSource);

     char *temp = strDst; while( *strDst++ == *strSource++)  NULL;

     return temp;}

    char* Strcat(char* strDst, const char* strSource){ assert(strDst && strSource);

     size_t nlen = strlen(strDst) + strlen(strSource); char *temp = new char[nlen + 1]; strcpy(temp,strDst); strcpy(temp + strlen(strDst),strSource);

     strDst = temp; return temp;}

    int Strcmp(const char* pFirst, const char *pSecond){    assert(pFirst && pSecond);

     while(*pFirst && *pSecond) {  if( *pFirst != *pSecond)   return *pFirst > *pSecond ? 1 : -1;

      ++pFirst;  ++pSecond; }

     return strlen(pFirst) - strlen(pSecond);}

    char* Strrev(char *str){ assert(str);    char *temp = str;

     for ( char *p = str + strlen(str) - 1; str < p; ++str,--p) {  char temp = *str;  *str = *p;  *p = temp; }

     return temp;} 

    int Atoi(const char* str){ assert(str);

     int flag = 1; int result = 0; const char *p = str;

     while( isspace(*p) )++p;

     if (*p == '+') {  flag = 1;  ++p; } else if(*p == '-') {  flag = - 1;  ++p; }

     while( isdigit(*p)) {  result = result*10 + *p - '0';        ++p; }

     return flag * result;

    }

    void Itoa(int value,char str[]){ assert(str); const char Digit[] = "0123456789";    char *p = str; int temp = value;

     while (temp) {  ++p;  temp /= 10; } *p = '/0';

     while(value) {  --p;  *p = Digit[value];  value /= 10; }}


    最新回复(0)