首页 > 其他分享 >模拟实现字符串函数strcat和strcmp

模拟实现字符串函数strcat和strcmp

时间:2023-04-02 22:32:19浏览次数:37  
标签:return dest str2 str1 strcat char 字符串 include strcmp

my_strcat函数实现

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <assert.h>
#include <string.h>

char* my_strcat(char* dest, const char* src)
{
	assert(dest && src);
	char* ret = dest;
	//找目标串的'\0'
	while (*dest != '\0')
	{
		dest++;
	}
	/*while (*src != '\0')
	{
		*dest = *src;
		dest++;
		src++;
	}*/
	//另一种写法
	while (*dest++ = *src++)
	{
		;
	}
	return ret;
}
int main()
{
	char arr1[20] = "abc";
	char arr2[] = "defgh";
	char* pc = my_strcat(arr1, arr2);
	printf("%s", pc);
	return 0;
}

my_strcmp函数实现

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <assert.h>
#include <string.h>

int my_strcmp(const char* str1, const char* str2)
{
	assert(str1 && str2);
	while (*str1 == *str2)
	{
		if (*str1 == '\0')
		{
			return 0;
		}
		str1++;
		str2++;
	}
	/*if (*str1 > *str2)
	{
		return 1;
	}
	else
	{
		return -1;
	}*/
	//另一种写法
	return (*str1 - *str2);
}
int main()
{
	char arr1[] = "abcdf";
	char arr2[] = "abcde";
	int ret = my_strcmp(arr1, arr2);
	printf("%d", ret);
	return 0;
}

标签:return,dest,str2,str1,strcat,char,字符串,include,strcmp
From: https://blog.51cto.com/u_16003640/6165189

相关文章

  • 字符串和字符数组的区别
    intmain(){charstr1[]={'h','e','l','l','o'};charstr2="hello";//'\0'intlen1=sizeof(str1)/sizeof(char);//5intlen2=sizeof(str2)/sizeof(char);......
  • Antd DatePicker 表单Value 转为 日期字符串格式
    AntdDatePicker表单Value转为日期字符串格式遇到问题:Antd4.x版本和5.x版本中DatePickervalue类型分别是:moment对象和dayjs对象类型,但通常提交表单时候,后端一般都要求是日期字符串格式“2022-08-09”这样;普遍的做法是在提交表单onFinish方法里对表单提交参数进......
  • 逆向——字符与字符串,中文字符GB2312编码由来
    字符与字符串在之前的课程中我们了解到变量的定义决定两个事情,第一是决定存储的数据宽度,第二是决定了存储的数据格式,那么我们来看下下面的代码:inta=123;//变量x,数据宽度为4个字节,里面存储的是补码(在计算机系统中,数值一律用补码来存储)intfloatb=123.4F;//IEEE编码(......
  • leetcode 394.字符串解码 Java
    394.字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:k[encoded_string],表示其中方括号内部的encoded_string正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外......
  • 循环输出字符串魔板,动态字段
    names=["吴*平(语文)","张学*(语文)","袁莹*(语文)","宋丹*(语文)","...","廉*峰(会计)"]for(nameofnames)console.log(`${name}\n很满意\n满意\n基本满意\n不满意\n\n${name}师德不满意的原因[多选题]\nA歧视......
  • 提取横杠以左的字符串
    问题:一列数据中,提取最右一个横杠以左的字符。 数据规律是,A列字符串长度为15位或16位,横杠以右都是7位。函数公式解决:=IF(LEN(A2)=15,LEFT(A2,7),LEFT(A2,8))=LEFT(A2,FIND("-",A2,8)-1)=LEFT(A2,LEN(A2)-8)公式1:先用IF判断,A2的长度为15时,左取7位,否则左取8位。公式2:FI......
  • 字符串(提高组)详解
    字符串(提高组)详解前提提要:本文为提高组字符串,不涉及到后缀科技等相关算法,请放心食用Part1.字符串Hash题目概要如题,给定\(N\)个字符串(第\(i\)个字符串长度为\(M_i\),字符串内包含数字、大小写字母,大小写敏感),请求出\(N\)个字符串中共有多少个不同的字符串。输入格式......
  • day11| 20.有效的括号;150.逆波兰表达式求值;1047.删除字符串中的所有相邻重复项
    20.有效的括号 题目简述:给定一个只包括'(',')','{','}','[',']' 的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 思路:1.利用一个栈实现2.构建一个字典,键......
  • HJ66 配置文件恢复_字典_字符串
    思路:1、把命令和执行对录入一字串字典和二字串字典2、取字典的可以与输入对比3、为了保证唯一性,用c常数增加1来判断是否唯一。4、最后根据c值统一打印输出1importsys2a=[]3forlineinsys.stdin:4a.append(line.strip().split())5#print(a)6d1={"rese......
  • 字符串、列表、元组、集合
    一、字符串1、定义使用引号(单引号、双引号、三引号)引起来的内容,就是字符串。2、例子#1、单引号str1='abc'#2、双引号str2="abc"#3、三引号str3='''abc'''#4、定义字符串,#字符串本身包含单引号,定义的时候不能使用单引号。字符串本身包含双引号......