模拟实现字符串相关函数

复制代码
//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//#include<string.h>
//
//如何写出好(易于调试)的代码?
//1.代码运行正常
//2.bug很少
//3.效率高
//4.可读性高
//5.可维护性高
//6.注释清晰
//7.文档齐全
//常见的coding技巧
//1.使用assert
//2.尽量使用const
//养成良好的编码风格
//添加必要的注释
//避免编码的陷阱
//
//模拟实现strcpy
//strcpy-字符串拷贝
//
//int main()
//{
//    char arr1[20] = "xxxxxxxxxxxxxxxxxx";
//    char arr2[] = "helllo\0";//\0也拷贝了
//    
//    strcpy(arr1, arr2);
//    printf("%s\n", arr1);
//    return 0;
//}
//
//void my_strcpy(char* dest,char* src)
//{
//    while (*src != '\0')//不是\0的部分拷贝
//    {
//        *dest = *src;
//        dest++;
//        src++;
//    }
//    *dest = *src;//\0的部分拷贝
//}
//
//void my_strcpy(char* dest, char* src)
//{
//    while (*src != '\0')
//    {
//        *dest++ = *src++;
//    }
//    *dest = *src;
//}
//
//void my_strcpy(char* dest, char* src)
//{
//    while (*dest++ = *src++)//'\0'的ASCII码值为0,既拷贝了\0,又使得循环停止
//    {
//        ;
//    }
//}
//
//#include<assert.h>
//void my_strcpy(char* dest, char* src)
//{
//    assert(src!=NULL);//断言
//    assert(dest!=NULL);//断言
//
//    while (*dest++ = *src++)//'\0'的ASCII码值为0,既拷贝了\0,又使得循环停止
//    {
//        ;
//    }
//}
//
//#include<assert.h>
//void my_strcpy(char* dest,const char* src)
加了const如果不小心写反了,写成*src++=*dest++ ,会报错
//{
//    assert(src != NULL);//断言
//    assert(dest != NULL);//断言
//
//    while (*dest++ = *src++)//'\0'的ASCII码值为0,既拷贝了\0,又使得循环停止
//    {
//        ;
//    }
//}
//int main()                                                
//{
//    char arr1[20] = "xxxxxxxxxxxxxxxxxx";
//    char arr2[] = "helllo\0";
//    my_strcpy(arr1,arr2);//1.目标空间的起始地址,2.源空间的起始地址
//    printf("%s\n", arr1);
//    return 0;
//}
//
//int main()
//{    //1.
//    //int num = 10;
//    //int* p = &num;
//    //*p = 20;
//    //printf("%d\n", num);
//
//    //2.
//    //const修饰变量,这个变量称为常变量,不能被修改,但是本质上还是变量
//
//    // const int num = 10;
//    num = 20;//err
//    
//    //int* p = &num;
//    //*p = 20;//此时仍会改变num的值,有违const的初衷
//    
//    //3.
//    //int num = 10;
//    //const int* p = &num;
//    const修饰指针变量时
//    const 如果放在*的左边,修饰的时*p,表示指针指向的内容,是不能通过指针改变的
//    //*p = 20;//err
//
//
//    printf("%d\n", num);
//
//
//    return 0;
//}
复制代码
posted @   morphism  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示