首页 > 其他分享 >模拟实现字符串相关函数

模拟实现字符串相关函数

时间:2023-02-20 16:56:57浏览次数:28  
标签:src const 函数 dest char num strcpy 字符串 模拟

//#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;
//}

标签:src,const,函数,dest,char,num,strcpy,字符串,模拟
From: https://www.cnblogs.com/morphism/p/17138011.html

相关文章

  • 《数学》三角函数公式汇总
    01-定义式三角函数公式是数学中属于初等函数中的超越函数的一类函数公式。它们的本质是任意角的集合与一个比值的集合的变量之间的映射,通常的三角函数是在平面直角坐标系......
  • 字符串(str)内置方法补充、列表(list)内置方法、可变类型与不可变类型、队列和栈
    目录一、字符串(str)的内置方法(补充)了解方法二、列表(list)的内置方法三、可变类型与不可变类型四、队列和栈一、字符串(str)的内置方法(补充)#upper()把当前字符串中......
  • 三角函数 / trigonometry
    基本知识点primary:$\sin\theta=\frac{\text{opposite}}{\text{hypotenuse}},\cos\theta=\frac{\text{adjacent}}{\text{hypotenuse}},\tan\theta=\frac{\text{opposite}......
  • 处理字符串_7_判断字符串是字符串数字型
                  判断字符串是字符串数字型需求描述需求:检索temp_strdata表的字段data是字符串数字类型的记录这里如果都是字符串或者数字的也符......
  • 处理字符串_5_字符串里过滤不需要的字符
                  字符串里过滤不需要的字符需求描述需求:过滤tmp_v视图里含数字的部分.其中tmp_v视图的data字段的定义是emp表的ename字段拼接空......
  • 处理字符串_4_计算某个字符出现的次数
                  计算某个字符出现的次数需求描述需求:查询emp表emptno是7499的用户的job里S出现的次数.解决方法:这里length(len)结合replace函数......
  • 处理字符串_8_判断字符串含有汉字
                  判断字符串含有汉字需求描述需求:检索含有汉字的字符串.解决方法:这里通过函数CHAR_LENGTH对比LENGTH进行对比来判断.注:数据库......
  • 内联函数和宏定义
    内联函数和宏定义的区别在使用时,宏只做简单字符串替换(编译前)。而内联函数可以进行参数类型检查(编译时),且具有返回值。内联函数在编译时直接将函数代码嵌入到目标代码中,省......
  • 判断⼀个字符串中出现次数最多的字符,统计这个次数
    //找出⼀个字符串中出现次数最多的字符,并统计出现的次数//"ababajshbaasdaaaa"=>{char:'a',count:9} varstr="ababajshbaasdaaaa"functioncomputeStr......
  • 算法之字符串
    字符串字符串--反转字符串题目:力扣题目链接(opensnewwindow)编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的......