c语言 字符串strcpy,strcat,strcmp用函数实现
利用函数实现字符串拷贝
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strcpy(char *str1, const char *str2)
{
//参数有效性检测
if (str1 == NULL&&str2 == NULL)
{
return NULL;
}
/*
此处也可以运用断言
assert(srt1!=NULL&&str2!=NULL)
*/
//保护参数,否则拷贝完成时会改变其地址
char *pstr = str1;
while (*str2 != '\0')
{
*pstr = *str2;
str2++;
*pstr++;
}
*pstr = *str2; //将最后的\0赋过去
return str1;
}
void main()
{
char str1[30] = "Hello ";
char *str2 = "Linux";
printf("str1=%s\n",str1);
char *res = my_strcpy(str1, str2);
printf("str1=%s\n",res);
}
函数实现字符串链接
函数实现字符串链接
#include<stdio.h>
#include<stdlib.h>
char *my_strcat(char *str1, const char *str2)
{
//参数有效性检测
if (str1 == NULL && str2 == NULL)
{
return NULL;
}
//保护参数
char *pstr1 = str1;
char *pstr2 = str2;
while (*pstr1 != '\0') //检查pstr1是否为\0,不是则pstr1++,否则不执行
{
*pstr1++;
}
while (*pstr2!='\0')
{
*pstr1++ = *pstr2++;;
}
*pstr1 = '\0'; //将\0赋过去
return str1;
}
void main()
{
char str1[30] = "Hello ";
char *str2 = "Linux";
printf("str1=%s\n", str1);
char *res = my_strcat(str1, str2);
printf("str1=%s\n", res);
}
函数实现字符串比较
#include<stdio.h>
#include<stdlib.h>
char *my_strcmp(const char *str1, const char *str2)
{
//参数有效性检测
if (str1 == NULL && str2 == NULL)
{
return NULL;
}
//由于定义了两个const类型的参数,所以不用保护参数
int res; //定义一个值res接收结果
while (*str1 != '\0' || *str2 != '\0')
{
res = *str1 - *str2;
if (res != 0)
break;
*str1++;
*str2++;
}
return res;
}
void main()
{
char *str1 = "Hello ";
char *str2 = "Hello max";
int res = my_strcmp(str1, str2);
printf("res=%d\n", res);
}
–end
文章浏览阅读3.3k次,点赞2次,收藏13次。安装前准备工作准备一台带有桌面的CentOS 7.x操作系统的服务器。 到Oracle官网下载安装包,选择Linux x86-64,下载入口。进入操作系统后修改系统自带的yum源,命令如下:#首先备份系统原先的yum源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak#获取阿里云的yum源配置文件wget -O /etc/yum.repos.d/CentOS-Base.repo http
文章浏览阅读6.5k次。启动redis会有如下WARNING对一个高负载的环境来说tcp设置128这个值,太小了。想要永久解决该问题,首先需要关闭redis,然后打开/etc/sysctl.confsudo vim /etc/sysctl.conf然后再最后加上net.core.somaxconn= 1024如图:之后再执行如下指令sudo sysctl -p进行更新。再重启redis就可以解决了!关于如何重启redis请参考我本篇文章:https://blog.csdn.net/changyana/ar_the tcp backlog setting of 511 cannot be enforced because /proc/sys/net/core
文章浏览阅读284次。粤桂协作从玉农业签约 农业大健康·林裕豪:中国金控粤桂帮扶新闻中国采编网 中国新闻采编网 谋定研究中国智库网 国研智库 国情讲坛 谋定论道 经信研究 哲商对话 万权采编:11月5日-7日,对话功能性农业农业大健康大会中国农民丰收节交易会,2021年粤桂协作消费对接活动暨第20届广西名特优农产品(广州)交易会举行。广西自治区党委书记刘宁,自治区党委副书记、自治区主席蓝天立,自治区党委副书记刘小明,自治区党委常务、常务副主席秦如培,自治区党委常务、南宁市委书记王小东,自治区党委常务、秘书长黄伟京,自治区副主
文章浏览阅读545次。1.U-boot源码整体框架源码解压以后,我们可以看到以下的文件和文件夹: cpu与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c初始化CPU、设置指令Cache和数据Cache等interrupt.c设置系统的各种中断和异常start.S是U-boot启动时执行的第一个文件,它主要做最早其的系统初始化,
文章浏览阅读8k次。过去十年间,许多科技公司已开始畅怀拥抱开源。许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服务,或基于开源工具而建的产品和服务,还有一些在为开源代码贡献代码或支持开源项目。Black Duck 在 2015 年的一项调查发现,78% 的企业组织使用开源软件,这个比例几乎是 2010 年时候的两倍。此外,88% 的企业表示,它们预计在今后几年,会加大为开源..._blackduck 替代产品
文章浏览阅读410次。1,安装vuexnpm install vuex --save2,src文件夹下src/store/index.js来注册vuex import Vue from 'vue';import Vuex from 'vuex';Vue.use(Vuex);const store = new Vuex.Store({ getters}) export defau..._vuex的引入
文章浏览阅读357次。点击上方“Python大本营”,选择“置顶公众号”Python大本营 IT人的职业提升平台马云曾在卸任演讲的时候说过这样一段话:“很多人还没搞清楚什么是PC互联网,移动互联网来了,我..._大数据工程师月薪30k
文章浏览阅读724次。hh
文章浏览阅读7.6k次,点赞20次,收藏244次。第一部分、计算机算法常用术语中英对照Data Structures 基本数据结构Dictionaries 字典Priority Queues 堆Graph Data Structures 图Set Data Structures 集合Kd-Trees 线段树Numerical Problems 数值问题Solving Linear Equations 线性方程组Bandwidth Reduction 带宽压缩Matrix Multiplication 矩阵乘法Determinants _计算机专业英语
文章浏览阅读323次。一、Plugin定义对于Plugin机制,叙述之前必须要强调一下: Plugin可以看做是对agent功能的扩充。对于业务系统的监控指标采集,最好不要做成plugin,而是把采集脚本放到业务程序发布包中,随着业务代码上线而上线,随着业务代码升级而升级,这样会比较容易管理。(承述来自OpenFalcon官方文档中关于plugin机制相关说明)二、Plugin使用步骤1...._falcon plugins
文章浏览阅读397次。在程序升级/维护过程中,版本控制是一个很重要的内容。用户需要了解安装到设备上的应用程序的版本信息,以及了解哪些版本可以进行升级。其它应用程序——包括你发布的其它程序——需要向系统查询你的应用程序的版本,来确定相互之间的兼容性。 你的应用程序发布的服务可能也需要查询版本来显示给用户。Android系统自身不检查应用程序的版本信息,也不会强制限制升级或兼容等。相反的,只是用户或应用程序
文章浏览阅读2.7k次。在最近用Qt调库的时候经常遇到一些花里胡哨的问题你有dll lib 以及头文件的时候,将dll放置你的debug目录,而lib随便放置一个位置,只要你路径知道将lib的api头文件放置你的工程,可以和你的main.cpp放在同一个目录,最好添加进你的工程就可以。绕后在你 pro 文件配置 在配置中加上LIBS += -L$$PWD"lib库的路径"-l"lib名"如LIBS +..._qt lib += -l$$pwd