我是靠谱客的博主 年轻可乐,最近开发中收集的这篇文章主要介绍模拟实现:strlen,strcat,strchr,strcpy,strcat...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

模拟实现的字符串处理函数:
strlen,strcat,strncat,strchr,strrchr,strcpy,strncpy

1.strlen,求字符串的长度,不算‘/0’

size_t mystrlen(const char *string)
{
const char *p = string;
while (*p++)
{}
return(p - string - 1);
}

2.strcat,拼接字符串

char *mystrcat(char *dest, const char *source)//两个字符串拼接
{
char *address = dest;
assert((*dest != NULL) && (*source != NULL));
while (*dest++)
{}
while (*(dest++) = *(source++))
{}
return address;
}

3.strncat,拼接字符串,把第二串字符串前count字符拼接到第一个字符串后面

char *mystrncat(char *dest, const char* source,size_t count)//把2字符串前count个接到1字符串后面
{
char *address = dest;
assert((*dest != NULL) && (*source != NULL));
while (*dest != '')
{
dest++;
}
while (count && (*dest++ = *source++))
{
count--;
}
*dest = '';
return address;
}

4.strchr,找出第一次出现字符C的位置

const char * mystrchr(const char * string,char C)//第一次出现字符的位置,如果没有返回NULL
{
assert(*string != NULL);
while (*string)
{
if (*string == C)
return string;
string++;
}
return NULL;
}

5.strrchr,返回字符C最后出现在字符串的位置

const char * mystrrchr(const char * string, char C) //最后一个字符出现的位置,如果没有返回NULL
{
const char* tmp = NULL;
assert(*string != NULL);
while (*string)
{
if (*string == C)
tmp = string;
string++;
}
return tmp;
}

6.strcpy,字符串拷贝

char * mystrcpy(char *dest, const char *source)
{
char *address = dest;
assert((dest != NULL)&&(source != NULL));
while (*dest++ = *source)
{}
return address;
}

7.strncpy,字符串拷贝,拷贝源字符串count个字符到目的字符串

char *mystrncpy(char *dest, const char *source, size_t count)
{
assert((dest != NULL) && (source != NULL));
char *address = dest;
while (count--)
{
*dest++ = *source++;
}
*dest = '';
return address;
}

最后

以上就是年轻可乐为你收集整理的模拟实现:strlen,strcat,strchr,strcpy,strcat...的全部内容,希望文章能够帮你解决模拟实现:strlen,strcat,strchr,strcpy,strcat...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部