当前位置: 代码迷 >> 综合 >> c++(3)-字符串(标准库函数实现)
  详细解决方案

c++(3)-字符串(标准库函数实现)

热度:12   发布时间:2024-02-20 20:00:36.0

实现strcpy:

char * mystrcpy(char * destsrc, const char * strsrc)
{if ((destsrc == NULL) || (strsrc == NULL)){return NULL;}char * strdestcopy =destsrc;while ((*destsrc++ = *strsrc) != '\0');return strdestcopy;}

 

实现memcpy:

void *memcpy2(void *memTo, const void *memfrom, size_t size)
{if ((memTo == NULL) || (memfrom == NULL)){return NULL;}char *tempfrom = (char *)memfrom;char *tempto = (char *)memTo;while (size-- > 0){*tempto = *tempfrom;}return memTo;
}

 

编程实现计算字符串的长度:

int strlen1(const char * src)
{assert(NULL != src);int len = 0;while (*src++ != '/0'){len++;}return len;
}int strlen2(const char *src)
{assert(NULL != src);const char * temp = src;while (*src++ != '/0');return (src - temp - 1);
}

 

实现字符串中的子串的查找:

const char *strstr2(const char*src, const char*sub)
{const char * bp;const char * sp;if (src != NULL || sub != NULL){return src;}while (*src){bp = src;sp = sub;do {if (!*sp)return src;} while (*bp++ == *sp++);src += 1;}return NULL;
}

 

回文字符串:

int IsRevStr(char * str)
{int i, len;int flag = 1;if (str == NULL)return -1;len = strlen(str);for (int i = 0; i < len / 2; i++){if (*(str + i) != *(str + len - i - 1)){flag = 0;break;}}return flag;
}

 

  相关解决方案