#include <iostream>
#include <assert.h>
#include <windows.h>
using namespace std;

char* strCpy( char* destStr, const char* srcStr ) //字符串拷贝函数
{
 assert( destStr != nullptr && srcStr != nullptr ); //断言,如果条件成立,程序报错
 unsigned int uIndex  = 0;
 while( *( destStr + uIndex ) = *( srcStr + uIndex ) ){ uIndex++; } //字符串拷贝,如果遇'\0',结束拷贝
 return destStr; //返回拷贝后的字符串
}

int strLen( const char* srcStr ) //计算字符串长度函数
{
 assert( srcStr != nullptr ); //断言,如果条件成立,程序报错
 unsigned int uIndex = 0;
 while( *( srcStr + uIndex ) ){ uIndex++; } //遇'\0'结束,uIndex地址索引值即为字符串长度
 return uIndex; //返回长度值
}

void strCat( char* destStr, const char* srcStr ) //字符串链接函数
{
 assert( destStr != nullptr && srcStr != nullptr ); //断言,如果条件成立,程序报错
 unsigned int uIndex = 0;
 while( *( destStr + uIndex ) ){ uIndex++; } //将目标字符串地址索引移至末端
 unsigned int uIndex1 = 0;
 while( *( destStr + uIndex ) = *( srcStr + uIndex1 ) ){ uIndex++; uIndex1++; } //再目标字符串末端开始链接后续字符串
}

int strCmp( const char* destStr, const char* srcStr ) //字符串比较函数
{
 assert( destStr != nullptr && srcStr != nullptr ); //断言,如果条件成立,程序报错
 unsigned uIndex = 0;
 while( *( destStr + uIndex ) == *( srcStr + uIndex ) )
 {
  if( *( destStr + uIndex ) == '\0' && *( srcStr +uIndex ) == '\0' ) //如果条件循环下来到两字符串都成立并结束,返回0
   return 0;
  uIndex++;
 }
 return ( *( destStr + uIndex ) - *( srcStr +uIndex ) ) % 2 ; //如果如果条件循环下来突然不成立,那么假设目标字符串大于源字符串,返回1, 否则返回-1
}

void main()
{
 char szName[ 255 ];
 char szTest[ 9 ] = "MrXo";
 strCat( szTest, "Order" );
 cout << strCpy( szName, szTest )  << endl << strLen( szTest ) << endl;
 char szStr1[] = "check";
 char szStr2[] = "checka";
 cout << strCmp( szStr1, szStr2 ) <<endl;
 system( "pause" );
}

C++ strcpy、strcat、strcmp和strlen的实现相关推荐

  1. 缓存区的输入输出,字符串常用操作,实现strlen/strcpy/strcat/strcmp函数)

    输出缓冲区: 程序输入的数据并不能立即显示在屏幕上,而是先存储在输出缓冲区中,满足一些条件后才显示出来. 1.遇到\n后 2.遇到输入语句 3.当输出缓冲区满4K 4.当程序结束 5.手动刷新 ffl ...

  2. strlen,strcpy,strcat,strcmp函数

    1.strlen函数 strlen函数的作用是计算给定字符串的长度,从内存的某个位置开始,遇到第一个'\0'结束. 使用样例: int main() {const char *ar = "a ...

  3. 转:strcat与strcpy与strcmp与strlen

    转自:http://blog.chinaunix.net/uid-24194439-id-90782.html strcat 原型:extern char *strcat(char *dest,cha ...

  4. 用子函数实现strlen.strcpy.strcat.strcmp(完整代码)

    strlen思路 循环遍历数组(字符串),直至第i位等于尾零'\0',循环结束:定义一个变量 在循环内自加 strcat思路 循环遍历第一个字符串,找到末尾,'\0'的位置,然后将第二个字符串,从头开 ...

  5. c语言strcpy两字符串长度不同,(C语言)自己写字符串操作函数(一)——strlen/strcpy/strcat/strcmp/st...

    看到很多面试都会要求你写一些简单的字符串操作函数,这些函数看起来挺简单的,但是自己写的时候就会发现不少的问题.所以我自己把大部分的字符串操作函数都写了一遍,然后用了个测试程序来测试自己写的函数与库函数 ...

  6. 字符串处理函数(strcpy strcat strcmp strlen)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.字符串复制函数 strcpy 二.字符串连接函数 strcat 三.字符串比较函数strcmp 四..求字符串长度 ...

  7. C语言strlen,strcpy ,strcat, strcmp,strstr常用库函数的理解与模拟实现

    前言 本篇文章主要学习一下常见的库函数和模拟实现这些库函数,这篇文章可以加深我们对这些函数的理解. 一.strlen 这个函数是用来求字符串长度的,实现逻辑是: '\0' 作为字符串的结束标志,str ...

  8. 《C语言杂记》理解字符串处理函数 strlen() strcpy() strcat() strcmp()

    在linux C 编程中,我们经常遇到字符串的处理,最多的就是字符串的长度.拷贝字符串.比较字符串等:当然现在的C库中为我们提供了很多字符串处理函数.熟练的运用这些函数,可以减少编程工作量,这里介绍几 ...

  9. C语言程序设计 | 模拟实现字符串操作函数:strlen, strcmp, strcpy, strcat, strchr, strstr

    模拟实现字符串和内存操作函数(一)目录: strlen strcpy strcat strcmp strstr strchr strlen size_t strlen(const char* str) ...

  10. c语言strcpy、strcmp、strcat等常见字符操作函数的介绍

    字符串是c语言中一种常见的数据类型,字符串属于常量,不可修改,如果我们想要修改,就要把它放在字符数组中来对其进行修改,而有一些函数可以帮助我们完成一些常用的操作字符串的动作,下面我们就来介绍一些常用字 ...

最新文章

  1. 正则的实例用法,删除包含某些字符的字符串
  2. cp: /usr/bin/chromedriver: Operation not permitted
  3. opencv中的imread不支持中文路径的解决办法
  4. 日常python常见问题
  5. JQuery: 实现筛选功能
  6. DataWorks 功能实践 — 生产开发环境隔离
  7. react native android 打包
  8. 自己动手、丰衣足食!面试表
  9. 3.0 面向对象 委托和事件 异常和错误
  10. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_1_今日内容(1)...
  11. linux运维实战案例,Linux运维实战练习案例20151220~20151231
  12. Android 学习笔记(5)之RxJava解析1
  13. openwrt修改默认网关地址_修改宇视摄像机IP地址的方法
  14. beautify配置
  15. Linux下安装YASM--编译x264
  16. LeetCode:剑指 Offer 58 - II. 左旋转字符串
  17. 计算机内部应用什么计算,计算机内部使用什么来计数
  18. 阿铭Linux培训课视频第四期
  19. 计算机科学转金融工程,计算机如何转金融与金融工程
  20. C++ STL库使用注意点

热门文章

  1. 如何给PDF中的内容添加下划线
  2. 1 1 2 3 5 8 java_【Java】一个斐波那契数列是由数字1、1、2、3、5、8、13、21、34等等组成的,其中每一个数字(从第三个数字起)都是前两个数字的和。...
  3. pc端无线传文件到手机
  4. 成交量、持仓量与价格运动的关系
  5. 【Dos】常见的Dos攻击
  6. web在线聊天页面代码
  7. ISP 和IAP 原理与区别
  8. python+openCV使用SIFT算法实现印章的总相似度检测
  9. 中文转拼音开头以及五笔开头
  10. 第12课:如何理解技术管理者(上)