char* mystrcpy(char* str_one,const char* str_two)
{
char* tmp = str_one;
while (*str_one++ = *str_two++)return tmp;
}
char* mystrcat(char* str_one,const char* str_two)
{
char* tmp = str_one;
while (*str_one)str_one++;
while (*str_one++ = *str_two++)return tmp;
} //1-7为逐渐优化过程
int mystrcmp1(const char* str_one,const char* str_two)
{
while (*str_one != '\0'&&*str_two != '\0')
{
if (*str_one > *str_two)
{
return 1;
}
else if (*str_one < *str_two)
{
return -1;
}
else
{
str_one++;
str_two++;
}
}
if (*str_one != '\0'&&*str_two == '\0')
{
return 1;
}
else if (*str_one == '\0'&&*str_two != '\0')
{
return -1;
}
else
{
return 0;
}
} int mystrcmp2(const char* str_one, const char* str_two)
{
while (*str_one != '\0'&&*str_two != '\0')
{
if (*str_one != *str_two)
{
return *str_one - *str_two;
}
else
{
str_one++;
str_two++;
}
}
return *str_one - *str_two;
} int mystrcmp3(const char* str_one, const char* str_two)
{
while (*str_one != '\0'&&*str_two != '\0')
{
if (*str_one != *str_two)
{
break;
}
else
{
str_one++;
str_two++;
}
}
return *str_one - *str_two;
} int mystrcmp4(const char* str_one, const char* str_two)
{
for (;*str_one != '\0'&&*str_two != '\0';str_one++,str_two++)
{
if (*str_one != *str_two)
{
break;
}
}
return *str_one - *str_two;
} int mystrcmp5(const char* str_one, const char* str_two)
{
for (; *str_one&&*str_two; str_one++, str_two++)
if (*str_one != *str_two)
break;
return *str_one - *str_two;
} int mystrcmp6(const char* str_one, const char* str_two)
{
for (; (*str_one&&*str_two) && (*str_one == *str_two); str_one++, str_two++);
return *str_one - *str_two;
} int mystrcmp7(const char* str_one, const char* str_two)
{
for (; (*str_one&&*str_two) && (*str_one++ == *str_two++););
return *str_one - *str_two;
}

字符串自实现(一)(mystrcpy,mystrcat,mystrcmp)的更多相关文章

  1. [c/c++] programming之路(22)、字符串(三)——字符串封装

    项目结构 头文件.h #include<stdio.h> #include<stdlib.h> #include<string.h> //字符串封装,需要库函数 / ...

  2. C语言程序设计(十) 字符串

    第十章 字符串 字符串常量是由一对双引号括起来的一个字符串序列 字符串实际就是由若干个有效数字构成且以字符'\0'作为结束的一个字符序列 C语言没有提供字符串数据类型,因此字符串的存取要用字符型数组来 ...

  3. 自定义方法实现strcpy,strlen, strcat, strcmp函数,了解及实现原理

    位置计算字符串长度 //strlen()函数,当遇到'\0'时,计算结束,'\0'不计入长度之内 //字符串的拷贝        //strcpy(字符串1,字符串2);        //把字符串2 ...

  4. 自己实现C++的string类

    使用C++的朋友对string类都不会陌生,string类使用起来很是方便,比C的字符数组好用多了,但是我们能不能自己实现一个属于自己的string类呢? 实现一个具有基本功能的string类并不难, ...

  5. 1. C/C++项目一

    需求: 使用C语言封装string 字符串,实现字符串的增.删.改.查等API函数. 要求: 不能使用 string 库函数,所有库函数必须自己手动实现. [项目实现] myString.h 代码如下 ...

  6. typedef的使用2——定义函数

    #include <stdio.h> #include <string.h> #pragma warning(disable:4996) //闲言碎语都先不要讲了,直接上函数吧 ...

  7. 睡不着,复习一下C++基础中的基础(深拷贝与浅拷贝)

    #include <iostream> #include <string> #include <assert.h> using namespace std; //声 ...

  8. C语言学习第八章

    今天开始学习字符串,学完以后最低要做到了解什么是字符串,以及字符串的一些应用方法,毕竟字符串还是很常见的. 简单的字符串"helloworld",这个字符串大家应该都很眼熟,学编程 ...

  9. c 跟字符串有关的函数

    1.字符串查找 strstr char * strstr(const char *s1, const char *s2); 在s1中查找s2,如果找到返回首个s2的首地址 char * strcase ...

随机推荐

  1. docker部署验证码项目报错:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

    如果docker部署启动报错 java.lang.NullPointerException: nullat sun.awt.FontConfiguration.getVersion(FontConfi ...

  2. Qt5获取可用串口

    概述 本文将介绍Qt5使用类QSerialPortInfo获取可以用串口号 效果 机器上配置的虚拟串口 程序获取结果 源码开始 .pro文件中添加下面的代码 QT += serialport 然后,执 ...

  3. nim_duilib(14)之xml配置半透明窗体控件不透明

    before starting note 截至目前,我只能用xml写一些简单的布局和设置控件属性,循序渐进吧. 正在学习nim_duilib的xml的一些属性. xml配置半透明 GTAV中就有很多控 ...

  4. visual studio c++项目文件分类混乱整理

    演示环境: win10 + vs2015 (下面简称VS)+ visual assist (下面简称VA) 1.混乱 装了VA的VS,有个快捷键,可快速切换 .h 文件和 .cpp(.cc, .cxx ...

  5. 【剑指Offer】翻转单词顺序列 解题报告(Python)

    [剑指Offer]翻转单词顺序列 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题 ...

  6. P1753HackSon的趣味题

    1 #include<stdio.h> 2 #include<algorithm> 3 #include<iostream> 4 #include<stdli ...

  7. Direct and Indirect Effects

    目录 概 主要内容 CDE NDE NIE TDE, TIE, PDE, PIE Judea Pearl. Direct and indirect effects. In Proceedings of ...

  8. CS5218替代AG6310方案|设计DP转HDMI转换方案|替代AG6310方案

    AG6310是一款实现显示端DP口转HDMI数据转换器.AG6310是一款单芯片解决方案,通过DP端口连接器传输视频和音频流,其DP1.2支持可配置的1.2和4通道,分别为1.62Gbps.2.7Gb ...

  9. Android物联网应用程序开发(智慧园区)—— 设置传感器阈值对话框界面

    效果图: 自定义对话框布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xml ...

  10. JEP解读与尝鲜系列4 - Java 16 中对于 Project Valhalla 的铺垫

    这是 JEP 解读与尝鲜系列的第 4 篇,之前的文章如下: JEP解读与尝鲜系列 1 - Java Valhalla与Java Inline class JEP解读与尝鲜系列 2 - JEP 142 ...