C语言strcpystrlen的模拟实现
Posted 小赵小赵福星高照~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言strcpystrlen的模拟实现相关的知识,希望对你有一定的参考价值。
实现strcpy的模拟
循环判断条件是*dest++ = *scr++,首先我们要知道,a=b这个表达式的值是a的值,我们将arr1中的每个字符赋值给arr2中时,其实整个表达式的值在每次循环时的值分别为’h’e’l’l’o’\\0’字符的ASSIC码值,当我们把\\0赋值到arr2中时,同时整个表达式的值也为0了,所以退出循环。
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* dest, const char* scr)
{
char* temp = dest;
assert(dest && scr);
while (*dest++ = *scr++)
{
;
}
return temp;
}
int main()
{
char arr1[] = "**************";
char arr2[] = "hello";
printf("%s\\n", my_strcpy(arr1, arr2));
return 0;
}
实现strlen的模拟
函数循环体判断部分*str++,*str为’\\0’时退出循环,因为’\\0’的ascii码值为0,为假。
#include<stdio.h>
#include<assert.h>
int my_strlen(const char *str)
{
assert(str);
int count=0;
while(*str++)
{
count++;
}
return count;
}
int main()
{
char arr[]="abcdef";
printf("%d\\n",my_strlen(arr));
return 0;
}
以上是关于C语言strcpystrlen的模拟实现的主要内容,如果未能解决你的问题,请参考以下文章