【C】c语言模拟实现strcopy函数和strlen函数!!

xiaoxiao2021-02-28  48

#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; }
转载请注明原文地址: https://www.6miu.com/read-41400.html

最新回复(0)