#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int My_strlen(const char *ch) //加const是为了不要让其他的条件改变ch的值
{
int count = 0; //定义一个计数器count
while((*ch++)!='\0') //只要ch数组里面的字符串不是\0则计数器就加1
{
count++;
}
return count; //将计数器的值返回
}
int main()
{
char ch[]="abcdef";
int len = My_strlen(ch);
printf("%d\n",len);
return 0;
}
my_strlen利用指针实现,
int my_strlen (const char *dest)
{
const char *p = dest;//先保存一份dest的地址
while (*dest)
dest++; //找到dest 的最后一个元素的地址
return dest-p; //利用指针相减得到元素的个数
}
my_strlen利用递归实现
int my_strlen(const char *dest)
{
if (*dest)
return 1+my_strlen(dest+1);//每找到一个不为\0的成员就+1
return 0;
}
输出结果均为:#include <stdio.h>
void My_strcpy(char *dest,const char *src) //加const的目的是为了保证src所指向的字符串不被外界因素改变
{
while((*dest++=*src++)&&*src!='\0') //将src里的字符复制给dest
;
*dest++ = '\0'; //上面的复制并没有将\0复制给dest,所以这里要加上
}
int main()
{
char arr[]="abcdef";
char aim[7];
My_strcpy(aim,arr);
printf("%s\n",aim);
return 0;
}