一些自己编写的字符串操作函数

1、编写strcat函数。(在目的字符串结束处添加源字符串)

/*已知strcat函数的原型是char *strcat(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。
不调用C++ / C 的字符串库函数,请编写函数 strcat
*/char* __cdecl strcat(char * dst, const char * src)
{char * cp = dst;while (*cp)cp++; /* find end of dst */while (*cp++ = *src++); /* Copy src to end of dst */return(dst); /* return dst */
}


2、编写strcmp函数。

//不使用库函数,编写函数int strcmp(char  *source, char *dest) 相等返回0,不等返回 - 1;
int strcmp(char  *source, char *dest)
{assert((source != NULL) && (dest != NULL));int i, j;for (i = 0; source[i] == dest[i]; i++){if (source[i] == '\0' &&dest[i] == '\0')return 0;elsereturn-1;}
}int strcmp(char *source, char *dest)
{while ((*source != '\0') && (*source == *dest)){source++;dest++;}return ((*source) - (*dest)) ? -1 : 0;
}


3、编写strcpy函数。

char* strcpy(char* strdes, const char* strsour)
{assert(NULL != strdes&&NULL != strsour);while ((*strdes++ = *strsour) != '\0');
}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android开发实践:常用NDK命令行参数

Android提供了NDK工具,用来编译native代码(c/c),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c代码编译为Android的java工程/Android手机可以识别、加载和运行的库或者应用程…

QT问题记录之warning: ‘xxx’ will be initialized after [-Wreorder]

QT问题记录之warning: ‘xxx’ will be initialized after [-Wreorder] 在使用Qt进行Application开发的过程中,经常出现如下警告: warning: ‘xxx’ will be initialized after [-Wreorder] struct TreeNode {TreeNode *left;TreeNode *right;int val;//…

SD读写流程

一、1bit-4bit数据传输对比 CPU/EDMA与SD的数据传输可以设置为1bit或4bit模式,1bit模式仅使用DAT0数据线,4bit模式使用DAT3-DAT0四位数据线。例如,传输512字节的数据,传输的数据格式如下图所示: 二、读写命令 读写分为…

ubuntu14.04 64bit主机下面安装android的NDK开发环境

通过wget工具下载bin包: $ wget -c http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin1 2,因为下载下来的是bin包,所以可以直接移动到需要安装的目录下面。 将Android NDK bin包移动到你想要的目录下,如 /opt/NDK/1 $ …

二维数组数和指针操作的理解

#include<string.h> #include <stdio.h> int main(void) {int a[4][2] { { 2,4 },{ 6,8 },{ 1,3 },{ 5,7 } };char *p[5] { "acvsadf", "cwerqwenn", "tttttt" };//字符串指针数组int c[4] { 0,1,2,3 };int *ptr c;/*这个正确&…

最近重构公司消息服务的架构设计

目标 研发一套独立的消息系统&#xff0c;此系统进行集中配置管理供各业务系统使用&#xff0c;用于支撑站内信、短信通知、短信验证码、邮件、微信消息、APP消息、IM等消息形式。 架构 1&#xff09; 基于消息队列采用发布、订阅模式。消息的生产者为对外的消息接口&#xff0…

高性能的MySQL(6)查询慢与重构查询

只有好的库表结构、合理的索引还不够&#xff0c;我们还需要合理的设计查询&#xff0c;齐头并进&#xff0c;一个不少才能充分发挥MySQL的优势。一、查询为什么会慢&#xff1f;每一个查询由一系列的子任务组成&#xff0c;每个子任务都会消耗一定的时间。这个我们在之前的单个…

生成n个从1到M(n = M)之间的不重复的随机数问题(洗扑克牌算法)

结合了对数组的使用、随机数生成等算法的知识。 学习这种由特殊到一般性的学习方法。面对复杂问题时候的逻辑僵滞和停顿。要加快速度锻炼这种缺陷&#xff0c;使之得到弥补。 思维僵滞的时候可以把问题联想成具体的模型&#xff0c;做到在脑海中有个具体的形象。这总比茫然一片…

CFLAGS详解

CFLAGS 表示用于 C 编译器的选项&#xff0c; CXXFLAGS 表示用于 C 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS&#xff1a; 指定头文件&#xff08;.h文件&#xff09;的路径&#xff0c;如&#xff1a;CFLAGS-I/usr/include -I/path/include。同样地…

一道大小端题目

今天看到一道关于大小端的题目&#xff0c;觉得很有趣&#xff0c;理解一番后摘抄如下&#xff1a; 题目&#xff1a; 示意图&#xff1a; 结果说明&#xff1a; 小端模式 大端模式

算法复杂度速查表

图例 数据结构操作 数组排序算法 图操作 堆操作 大 O 复杂度图表 Big O 复杂度 推荐阅读 Cracking the Coding Interview: 150 Programming Questions and Solutions[33] Introduction to Algorithms, 3rd Edition[34] Data Structures and Algorithms in Java (2nd Edition)…

求 s=a+aa+ aaa+ aaaa +aaaaa+........的值,a是从键盘输入的,项数也为键盘输入

总结&#xff1a;这道题目。主要是那个位数&#xff0c;需要*10&#xff0c; while&#xff08;i<f&#xff09;{ xy;//决定位数上的那个数 sumx//求和 y*10y;//决定位数 } package com.b;import java.util.Scanner; //输入一个数&#xff0c;如6 s666666666666666666666 6…

遇到异常:这可能是由某个扩展导致的

重构机房收费系统&#xff0c;我用EA画完UML图&#xff0c;打算用EA自己生成VB.NET代码&#xff0c;这样会方面些。没想到事情没有我想象的那么简单&#xff0c;可能是第一次尝试的原因&#xff0c;导入代码的过程中问题是一个接着一个。不过还好&#xff0c;虽然沿途困难重重&…

c++ 学习链接

1 chinaitlab实验室------c 2 转载于:https://www.cnblogs.com/javaspring/archive/2012/06/14/2656117.html

文件IO——文件IO相关概念

1、API &#xff08;1&#xff09;基于linux做应用开发&#xff0c;其实就是通过调用linux系统提供的API来实现。 &#xff08;2&#xff09;API 是一些由linux系统提供的函数&#xff0c;给应用层使用&#xff0c;以完成一定的功能。 &#xff08;3&#xff09;常用的文件IO的…

git使用小记

1. 基本操作 全局配置&#xff1a; git config --global user.name xx git config --global user.email xxx 初始化一个仓库&#xff1a; git init 添加&#xff1a; git add "file1.txt" git commit -m "添加文件1" 比较&#xff1a;分别列出每个文件…

LINUX内核之普通自旋锁

LINUX内核之普通自旋锁 CopyLeft by ICANTH&#xff0c;I Can do ANy THing that I CAN THink&#xff01;~ Author&#xff1a;WenHui&#xff0c;WuHan University&#xff0c;2012-6-15 PDF版阅读地址&#xff1a;http://www.docin.com/p1-424285718.html 普通自旋锁 自旋锁…

MFC COMBO-BOX最详细教程

找了好多&#xff0c;这是讲的最清楚的&#xff0c;与大家共享&#xff01; 转&#xff1a;https://blog.csdn.net/fym0121/article/details/7515862 当你只需从一列对象中选出一个时&#xff0c;使用COMBO BOX是一个好主意&#xff0c;因为它节省空间。这篇文章讲述了如何使…

uboot源码——主Makefile的分析

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考博客&#xff1a;u-boot Makefile完全解读_williamwang2013的博客-CSDN博客 参考博客&#xff1a;U-boot主Makefile分析_XiaoBaWu的博客-CSDN博客 参考博客&#xff1a;U-boot配置及编译阶段…

Designing Virtual Connect for vSphere 5.x

Designing Virtual Connect for vSphere 5.x如何在 HP C7000刀笼使用VC以满足vSphere 5.x 英文视频连接如下&#xff1a;http://professionalvmware.com/2013/05/vbrownbag-follow-up-designing-virtual-connect-for-vsphere-with-joe-clark-elgwhoppo/1&#xff1a;首先介绍一…